towhee
/
GPUDockerfile
57 строк · 2.7 Кб
1ARG BASE_IMAGE=nvidia/cuda:11.7.1-base-ubuntu20.04
2ARG PYTHON_VERSION=3.8
3
4# base image, build command:
5# docker build --platform x86_64 --target towhee-base -t towhee/towhee-base:latest .
6FROM ${BASE_IMAGE} as towhee-base
7
8# Speed up for Chinese users, only if user specified `USE_MIRROR=true`
9# In addition, use the default software source of the base image and language
10ARG USE_MIRROR=false
11ENV USE_MIRROR=${USE_MIRROR}
12ARG UBUNTU_MIRROR="mirrors.tuna.tsinghua.edu.cn"
13ENV UBUNTU_MIRROR=${UBUNTU_MIRROR}
14RUN if [ "$USE_MIRROR" = "true" ]; then sed -i -e "s/archive.ubuntu.com/${UBUNTU_MIRROR}/" /etc/apt/sources.list && sed -i -e "s/security.ubuntu.com/${UBUNTU_MIRROR}/" /etc/apt/sources.list; fi
15
16RUN --mount=type=cache,id=apt-dev,target=/var/cache/apt \
17apt-get update && apt-get install -y --no-install-recommends ca-certificates curl git && \
18apt autoremove && apt clean
19ENV PATH /opt/conda/bin:$PATH
20
21# conda image, build command:
22# docker build --platform x86_64 --target towhee-conda -t towhee/towhee-conda:latest .
23FROM towhee-base as towhee-conda
24ARG PYTHON_VERSION=3.8
25ARG CUDA_VERSION=11.3
26ARG CUDA_CHANNEL=nvidia
27ARG INSTALL_CHANNEL=pytorch
28COPY requirements.txt .
29
30ARG CONDA_MIRROR="https://mirrors.tuna.tsinghua.edu.cn/anaconda"
31ENV CONDA_MIRROR=${CONDA_MIRROR}
32ENV CONDA_SRC="https://repo.anaconda.com/miniconda"
33RUN if [ "$USE_MIRROR" = "true" ]; then export CONDA_SRC="${CONDA_MIRROR}/miniconda"; fi && \
34curl -fsSL -v -o ~/miniconda.sh -O "$CONDA_SRC/Miniconda3-latest-Linux-x86_64.sh" && \
35chmod +x ~/miniconda.sh && \
36~/miniconda.sh -b -p /opt/conda && \
37rm ~/miniconda.sh && \
38if [ "$USE_MIRROR" = "true" ]; then \
39echo "channels:" > $HOME/.condarc && \
40echo " - ${CONDA_MIRROR}/pkgs/free/" >> $HOME/.condarc && \
41echo " - ${CONDA_MIRROR}/pkgs/main/" >> $HOME/.condarc && \
42echo " - ${CONDA_MIRROR}/cloud/pytorch/" >> $HOME/.condarc && \
43echo " - defaults" >> $HOME/.condarc && \
44echo "show_channel_urls: true" >> $HOME/.condarc; \
45fi
46
47RUN /opt/conda/bin/conda install -y python=${PYTHON_VERSION} cmake conda-build pyyaml numpy ipython
48ENV CONDA_OVERRIDE_CUDA=${CUDA_VERSION}
49RUN /opt/conda/bin/conda install -c "${INSTALL_CHANNEL}" -c "${CUDA_CHANNEL}" -y python=${PYTHON_VERSION} pytorch torchvision torchaudio torchtext "cudatoolkit=${CUDA_VERSION}" && \
50/opt/conda/bin/conda clean -ya
51
52# ut image, build command:
53# docker build --platform x86_64 --target towhee-ut -t towhee/towhee-ut:latest .
54FROM towhee-conda as towhee-ut
55RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends -y ffmpeg libsm6 libxext6
56RUN pip install coverage pytest pytest-cov pytest-xdist
57WORKDIR /workspace