123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- FROM nvidia/cuda:11.0-cudnn8-devel-ubuntu18.04 AS builder
- RUN sed -i 's#archive.ubuntu.com#mirrors.aliyun.com#g' /etc/apt/sources.list \
- && sed -i 's#security.ubuntu.com#mirrors.aliyun.com#g' /etc/apt/sources.list
- ENV LANG=zh_CN.UTF-8 LANGUAGE=zh_CN:zh LC_ALL=zh_CN.UTF-8 DEBIAN_FRONTEND=noninteractive
- RUN rm -rf /etc/apt/sources.list.d/ && apt update
- RUN apt-get update && apt-get install -y --no-install-recommends \
- supervisor \
- iputils-ping \
- wget \
- zsh \
- build-essential \
- cmake \
- git \
- curl \
- vim \
- ca-certificates \
- libjpeg-dev \
- zip \
- unzip \
- tmux \
- libpng-dev \
- openssh-server \
- autojump \
- language-pack-zh-hans \
- ttf-wqy-zenhei \
- libgl1-mesa-glx \
- libglib2.0-0 \
- locales &&\
- rm -rf /var/lib/apt/lists/*
- RUN locale-gen zh_CN.UTF-8
- RUN dpkg-reconfigure locales
- CMD ["supervisord", "-n"]
- FROM builder as builder1
- ENV PYTHON_VERSION 3
- RUN chsh -s `which zsh`
- RUN curl -o ~/miniconda.sh -O https://repo.anaconda.com/miniconda/Miniconda${PYTHON_VERSION}-latest-Linux-x86_64.sh && \
- chmod +x ~/miniconda.sh && \
- ~/miniconda.sh -b -p /opt/conda && \
- rm ~/miniconda.sh
- RUN ln /opt/conda/bin/conda /usr/local/bin/conda
- RUN conda init zsh
- RUN conda install mamba -n base -c conda-forge
- RUN ln /opt/conda/bin/mamba /usr/local/bin/mamba && mamba init zsh
- FROM builder1 as builder2
- RUN apt-get update && apt-get install -y --no-install-recommends openssh-server && rm -rf /var/lib/apt/lists/*
- RUN mkdir /var/run/sshd
- RUN echo 'root:root' | chpasswd
- RUN sed -i 's/.*PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config
- # SSH login fix. Otherwise user is kicked off after login
- RUN sed -i 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' /etc/pam.d/sshd
- RUN echo "\
- [program:sshd] \n\
- command=/usr/sbin/sshd -D\n\
- autorestart=True\n\
- autostart=True\n\
- redirect_stderr = true\n\
- " > /etc/supervisor/conf.d/sshd.conf
- EXPOSE 22
- FROM builder2 as builder3
- WORKDIR /workspace
- #ADD environment.yml /environment.yml
- RUN echo "\
- name: py38\n\
- channels:\n\
- - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # Anocanda清华镜像\n\
- - defaults\n\
- - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/\n\
- dependencies:\n\
- - python=3.8\n\
- - ipython\n\
- - pip\n\
- - pip:\n\
- - cmake\n\
- - opencv-python\n\
- - cython\n\
- - paddleocr==2.5.0.3\n\
- - paddlehub==2.2.0\n\
- - fastapi==0.79.0\n\
- - uvicorn\n\
- - jinja2\n\
- - aiofiles\n\
- - python-multipart\n\
- - requests\n\
- - cpca\n\
- - gunicorn\n\
- - -i https://mirror.baidu.com/pypi/simple\n\
- - paddlepaddle-gpu==2.3.0.post110\n\
- - -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html\n\
- prefix: /opt/conda/envs/py38\n\
- " > /environment.yml
- RUN mamba update -n base -c defaults conda -y && mamba env create -f /environment.yml && rm -rf /root/.cache
- RUN echo "\
- [program:be]\n\
- directory=/workspace\n\
- command=/opt/conda/envs/py38/bin/gunicorn server:app --workers 1 --worker-class=uvicorn.workers.UvicornWorker --bind 0.0.0.0:8080 --reload \n\
- autorestart=true\n\
- startretries=0\n\
- redirect_stderr=true\n\
- stdout_logfile=/var/log/be.log\n\
- stdout_logfile_maxbytes=0\n\
- " > /etc/supervisor/conf.d/be.conf
- ARG VERSION
- ENV USE_CUDA $VERSION
- #Add . /workspace
- EXPOSE 8080
- # RUN mamba install -y jupyterlab -n base && mamba init zsh
- # RUN /opt/conda/bin/jupyter notebook --generate-config && \
- # echo "c.NotebookApp.password='argon2:\$argon2id\$v=19\$m=10240,t=10,p=8\$+zIUCF9Uk2FiCHlV8njX5A\$I5Mm/64DORArcXYTXWRVng'">>/root/.jupyter/jupyter_notebook_config.py
- # RUN mkdir -p /data && echo "\
- # [program:jupyter]\n\
- # directory=/data\n\
- # command=/opt/conda/bin/jupyter lab --ip 0.0.0.0 --port 8888 --allow-root --no-browser \n\
- # autorestart=true\n\
- # startretries=0\n\
- # redirect_stderr=true\n\
- # stdout_logfile=/dev/stdout\n\
- # stdout_logfile_maxbytes=0\n\
- # " > /etc/supervisor/conf.d/jupyter.conf
- # EXPOSE 8888
|