您的用户名 commited on
Commit
29543dc
·
1 Parent(s): b53c3a8

Final fix: Pre-create and permission all runtime directories

Browse files
Files changed (1) hide show
  1. Dockerfile +7 -11
Dockerfile CHANGED
@@ -8,19 +8,15 @@ RUN apt-get update && apt-get install -y build-essential cmake
8
  WORKDIR /app
9
 
10
  # --- 核心修正点在这里 ---
11
- # 1. 为pip创建一个专属的、拥有完全权限的“公共储物柜”
12
- ENV PIP_TARGET=/app/site-packages
13
- # 2. 告诉Python去这个新的“储物柜”里找零件
14
- ENV PYTHONPATH=$PIP_TARGET
15
- # 3. 为Hugging Face的库创建一个专属的、拥有完全权限的“模型储物柜”
16
- ENV HF_HOME=/app/huggingface_cache
17
- # 4. 手动创建这些文件夹,并授予最高权限
18
- RUN mkdir -p $PIP_TARGET $HF_HOME && chmod -R 777 $PIP_TARGET $HF_HOME
19
 
20
  # 将requirements.txt复制到工作目录中
21
  COPY requirements.txt .
22
 
23
- # 安装所有依赖库到我们指定的专属储物柜中
24
  RUN pip install --no-cache-dir -r requirements.txt
25
 
26
  # 将我们的API程序代码复制到工作目录中
@@ -29,5 +25,5 @@ COPY main.py .
29
  # 暴露程序将要运行的端口
30
  EXPOSE 7860
31
 
32
- # 启动时,确保Python知道去哪里找我们安装的零件
33
- CMD ["python3", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
 
8
  WORKDIR /app
9
 
10
  # --- 核心修正点在这里 ---
11
+ # 在构建阶段,就提前创建好所有程序在运行时需要写入的文件夹
12
+ # 并且,使用 chmod -R 777 授予它们最高权限,允许任何用户读、写、执行
13
+ RUN mkdir -p /app/pip_packages /app/huggingface_cache && \
14
+ chmod -R 777 /app/pip_packages /app/huggingface_cache
 
 
 
 
15
 
16
  # 将requirements.txt复制到工作目录中
17
  COPY requirements.txt .
18
 
19
+ # 只安装那些“秒速”完成的依赖库
20
  RUN pip install --no-cache-dir -r requirements.txt
21
 
22
  # 将我们的API程序代码复制到工作目录中
 
25
  # 暴露程序将要运行的端口
26
  EXPOSE 7860
27
 
28
+ # 定义启动命令
29
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]