mortimerme commited on
Commit
0e868f8
·
verified ·
1 Parent(s): d21e23d

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +22 -43
Dockerfile CHANGED
@@ -1,58 +1,37 @@
1
- # 1. 指定包含 Python 3.10 的基础镜像
2
- FROM python:3.10-slim
 
 
 
 
 
 
 
 
 
 
 
3
 
4
- # 2. [新增] 从官方镜像中直接复制最新版的 uv 到当前容器 (最快、最稳定的安装方式)
5
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
6
 
7
- # 3. 设置 Gradio 需要的默认环境变量
8
  ENV GRADIO_SERVER_NAME="0.0.0.0"
9
  ENV GRADIO_SERVER_PORT=7860
10
  ENV DEBIAN_FRONTEND=noninteractive
 
11
  ENV FONTCONFIG_PATH=/etc/fonts
12
 
13
- # 4. 设置工作目录
14
  WORKDIR /app
15
 
16
 
17
 
18
- # 5. 安装下载工具、FFmpeg 7 以及必要的系统动态库(GUI和音频库)
19
- RUN apt-get update && \
20
- apt-get install -y \
21
- fontconfig \
22
- fonts-noto-cjk \
23
- fonts-liberation \
24
- fonts-dejavu \
25
- wget \
26
- xz-utils \
27
- libglib2.0-0 \
28
- libgl1 \
29
- libsm6 \
30
- libxext6 \
31
- libxrender-dev \
32
- libxkbcommon-x11-0 \
33
- libdbus-1-3 \
34
- rubberband-cli \
35
- libsndfile1-dev \
36
- libsndfile1 && \
37
- wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz && \
38
- tar -Jxf ffmpeg-release-amd64-static.tar.xz && \
39
- cp ffmpeg-*-static/ffmpeg /usr/local/bin/ && \
40
- cp ffmpeg-*-static/ffprobe /usr/local/bin/ && \
41
- rm -rf ffmpeg-* && \
42
- apt-get clean && rm -rf /var/lib/apt/lists/*
43
- # 6. [新增] 优先复制配置文件 (这利用了 Docker 缓存,以后改代码不改依赖时能秒构建)
44
- COPY pyproject.toml ./
45
- # 如果你的项目根目录下生成了 uv.lock 文件,请将下面这行的注释取消掉:
46
- # COPY uv.lock ./
47
-
48
- # 7. [修改] 使用 uv 读取 pyproject.toml 并安装依赖到系统环境中
49
- RUN uv pip install --system -r pyproject.toml --all-extras && uv pip install --system torch==2.7.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu128 && uv pip install --system nvidia-cublas-cu12 nvidia-cudnn-cu12
50
-
51
- # 8. 复制你项目里的所有其他代码文件
52
- COPY . .
53
-
54
- # 9. 暴露端口
55
  EXPOSE 7860
56
 
57
- # 10. 启动你的主程序
58
  CMD ["python", "webui.py"]
 
1
+ # ============================================================
2
+ # pyVideoTrans WebUI Dockerfile
3
+ #
4
+ # CPU: docker build -t pyvideotrans-webui .
5
+ # GPU: docker build --build-arg USE_CUDA=true -t pyvideotrans-webui:gpu .
6
+ # ============================================================
7
+
8
+ ARG USE_CUDA=false
9
+
10
+ FROM python:3.10-slim AS cpu-base
11
+ FROM nvidia/cuda:12.8.0-cudnn-runtime-ubuntu22.04 AS gpu-base
12
+
13
+ FROM AS final-base
14
 
 
15
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
16
 
 
17
  ENV GRADIO_SERVER_NAME="0.0.0.0"
18
  ENV GRADIO_SERVER_PORT=7860
19
  ENV DEBIAN_FRONTEND=noninteractive
20
+ ENV PYTHONUNBUFFERED=1
21
  ENV FONTCONFIG_PATH=/etc/fonts
22
 
 
23
  WORKDIR /app
24
 
25
 
26
 
27
+ RUN apt-get update && apt-get install -y --no-install-recommends fontconfig fonts-noto-cjk fonts-liberation fonts-dejavu wget xz-utils git libglib2.0-0 libgl1 libsm6 libxext6 libxrender-dev libxkbcommon-x11-0 libdbus-1-3 libsndfile1 python3-dev rubberband-cli libsndfile1-dev && wget -q https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz && tar -Jxf ffmpeg-release-amd64-static.tar.xz && cp ffmpeg-*-static/ffmpeg /usr/local/bin/ && cp ffmpeg-*-static/ffprobe /usr/local/bin/ && rm -rf ffmpeg-* && apt-get clean && rm -rf /var/lib/apt/lists/*
28
+
29
+ RUN git clone -b dev https://github.com/jianchang512/pyvideotrans.git .
30
+
31
+ RUN if [ "" = "true" ]; then echo ">>> CUDA" && uv pip install --system -r pyproject.toml --all-extras && uv pip install --system torch==2.7.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu128 && uv pip install --system nvidia-cublas-cu12 nvidia-cudnn-cu12; else echo ">>> CPU" && uv pip install --system -r pyproject.toml --all-extras; fi
32
+
33
+ RUN rm -rf /root/.cache/uv /tmp/*
34
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  EXPOSE 7860
36
 
 
37
  CMD ["python", "webui.py"]