# 使用官方Python 3.9 slim版本作为基础镜像 FROM python:3.9-slim # 创建一个非root用户,并切换到该用户,增强安全性 RUN useradd -m -u 1000 user USER user ENV PATH="/home/user/.local/bin:$PATH" # 设置容器内的工作目录 WORKDIR /app # 将依赖文件复制到工作目录 # 使用 --chown=user 确保文件所有者为我们创建的非root用户 COPY --chown=user ./requirements.txt requirements.txt # 安装项目依赖 RUN pip install --no-cache-dir --upgrade -r requirements.txt # 将src目录下的所有代码复制到工作目录的src子目录中 COPY --chown=user ./src /app/src COPY --chown=user ./templates /app/templates COPY --chown=user ./static /app/static # 暴露端口,让Hugging Face平台可以访问我们的应用 EXPOSE 7860 # 容器启动时运行的命令 # 运行src目录下的app.py文件中的app实例 # --host 0.0.0.0 使其可以从外部访问 # --port 7860 使用Hugging Face指定的端口 CMD ["uvicorn", "src.app:app", "--host", "0.0.0.0", "--port", "7860", "--proxy-headers"]