Spaces:
Sleeping
Sleeping
# 使用官方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"] |