jacky3102 commited on
Commit
43da24e
·
verified ·
1 Parent(s): 6bdcabf

Fix Dockerfile: use ubuntu:22.04 base, runtime chown

Browse files
Files changed (1) hide show
  1. Dockerfile +11 -9
Dockerfile CHANGED
@@ -1,9 +1,13 @@
1
- FROM python:3.11-slim
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
 
4
 
5
- # Blender headless 运行所需的系统库(不需要显卡/X server)
6
  RUN apt-get update && apt-get install -y --no-install-recommends \
 
 
 
7
  wget \
8
  xz-utils \
9
  ca-certificates \
@@ -18,8 +22,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
18
  libglu1-mesa \
19
  && rm -rf /var/lib/apt/lists/*
20
 
21
- # 4.2 系列是 LTS,按需修改成其他版本
22
- # 版本列表: https://download.blender.org/release/
23
  ARG BLENDER_VERSION=4.2.9
24
  ARG BLENDER_MAJOR_MINOR=4.2
25
 
@@ -30,17 +33,17 @@ RUN wget -q "https://download.blender.org/release/Blender${BLENDER_MAJOR_MINOR}/
30
 
31
  ENV PATH="/opt/blender:${PATH}"
32
 
33
- # HF Spaces 的 Docker 运行时用非 root 用户(UID 1000)
34
  RUN useradd -m -u 1000 appuser
35
 
36
  WORKDIR /app
37
 
38
  COPY requirements.txt .
39
- RUN pip install --no-cache-dir -r requirements.txt
40
 
41
  COPY app.py worker.py ./
42
 
43
- # 运行时创建目录并设置权限(避免构建时 chown 失败)
44
  RUN mkdir -p /data/jobs
45
  ENV JOB_DIR=/data/jobs
46
  ENV BLENDER_BIN=/opt/blender/blender
@@ -48,6 +51,5 @@ ENV JOB_TIMEOUT_SECONDS=180
48
 
49
  EXPOSE 7860
50
 
51
- # 启动时确保目录权限正确
52
  CMD mkdir -p /data/jobs && chown -R appuser:appuser /data /app 2>/dev/null || true && \
53
- exec uvicorn app:app --host 0.0.0.0 --port 7860
 
1
+ FROM ubuntu:22.04
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
+ ENV PYTHONUNBUFFERED=1
5
 
6
+ # 安装系统依赖 + Python
7
  RUN apt-get update && apt-get install -y --no-install-recommends \
8
+ python3 \
9
+ python3-pip \
10
+ python3-venv \
11
  wget \
12
  xz-utils \
13
  ca-certificates \
 
22
  libglu1-mesa \
23
  && rm -rf /var/lib/apt/lists/*
24
 
25
+ # 4.2 系列是 LTS
 
26
  ARG BLENDER_VERSION=4.2.9
27
  ARG BLENDER_MAJOR_MINOR=4.2
28
 
 
33
 
34
  ENV PATH="/opt/blender:${PATH}"
35
 
36
+ # HF Spaces 非 root 用户(UID 1000)
37
  RUN useradd -m -u 1000 appuser
38
 
39
  WORKDIR /app
40
 
41
  COPY requirements.txt .
42
+ RUN pip3 install --no-cache-dir -r requirements.txt
43
 
44
  COPY app.py worker.py ./
45
 
46
+ # 运行时创建目录
47
  RUN mkdir -p /data/jobs
48
  ENV JOB_DIR=/data/jobs
49
  ENV BLENDER_BIN=/opt/blender/blender
 
51
 
52
  EXPOSE 7860
53
 
 
54
  CMD mkdir -p /data/jobs && chown -R appuser:appuser /data /app 2>/dev/null || true && \
55
+ exec python3 -m uvicorn app:app --host 0.0.0.0 --port 7860