Spaces:
Running
Running
Update Dockerfile
Browse files- Dockerfile +22 -43
Dockerfile
CHANGED
|
@@ -1,58 +1,37 @@
|
|
| 1 |
-
#
|
| 2 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 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"]
|