# CareerNexus 职联 —— 一体化镜像(默认 demo 模式,全程离线) # # 默认构建:轻量离线镜像(词表归一化,无模型权重) # docker build -t careernexus . # # 语义增强变体:附带 sentence-transformers + BGE-M3 权重(镜像约 +4GB, # 构建期需要联网下载依赖与权重;国内建议加 MODELSCOPE 源) # docker build --build-arg INCLUDE_EMBED=1 -t careernexus:semantic . FROM python:3.11-slim AS base WORKDIR /app # 先装依赖,利用镜像层缓存 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # ---- 可选:语义向量通道(BGE-M3) ---- ARG INCLUDE_EMBED=0 RUN if [ "$INCLUDE_EMBED" = "1" ]; then \ pip install --no-cache-dir sentence-transformers modelscope && \ modelscope download --model BAAI/bge-m3 --local_dir /app/models/bge-m3 ; \ fi # 拷贝源码并生成数据集 + 构建图谱(保证容器内开箱即跑) COPY . . # 语义变体:把权重路径写入运行时设置(若本地已存在 models/ 目录则随源码一起拷贝) RUN if [ "$INCLUDE_EMBED" = "1" ]; then \ printf '{\n "embed_model_path": "/app/models/bge-m3"\n}\n' > config.json ; \ fi && \ python scripts/generate_dataset.py && python scripts/run_demo.py EXPOSE 9008 CMD ["python", "main.py"]