Spaces:
Sleeping
Sleeping
File size: 1,874 Bytes
8bacbbf 68e8f6c 637e274 037e45c 8bacbbf 68e8f6c 637e274 68e8f6c 8bacbbf 637e274 68e8f6c aa5bcf3 8bacbbf 8fa71e2 8bacbbf 8fa71e2 68e8f6c 637e274 68e8f6c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# Dockerfile - 修复缓存权限
FROM python:3.11-slim
# 设置工作目录
WORKDIR /app
# 设置环境变量
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1
ENV PIP_NO_CACHE_DIR=1
ENV HF_HOME=/app/.cache/huggingface
ENV TRANSFORMERS_CACHE=/app/.cache/huggingface
ENV HF_DATASETS_CACHE=/app/.cache/huggingface
# 安装系统依赖
RUN apt-get update && apt-get install -y \
git \
curl \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# 创建缓存目录并设置权限
RUN mkdir -p /app/.cache/huggingface && \
chmod 755 /app/.cache && \
chmod 755 /app/.cache/huggingface
# 升级 pip 到最新版本
RUN pip install --upgrade pip
# 复制requirements文件并安装Python依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 复制项目文件
COPY . .
# ==================== 新增指令开始 ====================
# 创建一个非 root 用户来运行应用,增加安全性
RUN useradd --create-home --shell /bin/bash appuser
# 预先创建 huggingface 的缓存目录,并把整个 /app 目录的所有权
# 递归地(-R)交给 appuser 用户
RUN mkdir -p /app/.cache/huggingface && chown -R appuser:appuser /app
# 切换到 appuser 用户来执行后续的命令
USER appuser
# ==================== 新增指令结束 ====================
# 在构建时进行HF认证(如果token可用)
ARG Assitant_tocken
RUN if [ -n "$Assitant_tocken" ]; then \
export HF_HOME=/app/.cache/huggingface && \
python -c "from huggingface_hub import login; login('$Assitant_tocken', add_to_git_credential=False)"; \
fi
# 暴露端口
EXPOSE 7860
# 健康检查
HEALTHCHECK --interval=30s --timeout=30s --start-period=120s --retries=3 \
CMD curl -f http://localhost:7860/health || exit 1
# 启动命令
CMD ["python", "-m", "uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"] |