VideoGrain / Dockerfile
XiangpengYang's picture
.
fdab143
FROM nvidia/cuda:12.1.0-devel-ubuntu22.04
# 设置非交互模式
ENV DEBIAN_FRONTEND=noninteractive
# 安装必要的系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
curl \
git \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# 安装 Miniconda
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /tmp/miniconda.sh && \
bash /tmp/miniconda.sh -b -p /opt/conda && \
rm /tmp/miniconda.sh
ENV PATH=/opt/conda/bin:$PATH
# 创建 conda 环境 “videograin”,指定 Python 3.10
RUN conda create -n videograin python=3.10 -y
# 在 “videograin” 环境中安装 PyTorch、CUDA 支持及 Xformers
RUN conda install -n videograin pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=12.1 -c pytorch -c nvidia -y && \
conda run -n videograin pip install --pre -U xformers==0.0.27
# 创建非 root 用户(uid=1000)
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user
WORKDIR ${HOME}/app
# 复制本地 requirements.txt 进容器,并在 “videograin” 环境中安装 pip 依赖
COPY --chown=user:user requirements.txt /tmp/requirements.txt
RUN conda run -n videograin pip install --no-cache-dir -r /tmp/requirements.txt
# 强制安装指定版本的 huggingface-hub 和 gradio[oauth](同时安装 uvicorn 和 spaces)
RUN conda run -n videograin pip install --no-cache-dir huggingface-hub==0.17.3 gradio[oauth]==3.44.4 "uvicorn>=0.14.0" spaces==0.32.0
# 复制应用代码
COPY --chown=user:user . ${HOME}/app
# 设置环境变量,确保使用 “videograin” 环境中的 Python
ENV PATH=/opt/conda/envs/videograin/bin:$PATH \
PYTHONUNBUFFERED=1
# 默认启动命令
CMD ["python", "app.py"]