FROM ubuntu:18.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 \ 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 ENV TZ Asia/Shanghai RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\ echo "Asia/Shanghai" > /etc/timezone 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 ENV WORKDIR /workspace WORKDIR ${WORKDIR} ADD environment.yml /environment.yml RUN mamba update -n base -c defaults conda -y && mamba env create -f /environment.yml && rm -rf /root/.cache # RUN /opt/conda/envs/py38/bin/python -m ipykernel install --name py38 --display-name "py38" # RUN echo "c.MultiKernelManager.default_kernel_name = 'py38'">>/root/.jupyter/jupyter_notebook_config.py RUN echo "\ [program:be]\n\ directory=%(ENV_WORKDIR)s\n\ command= /opt/conda/envs/py38/bin/gunicorn server:app -b 0.0.0.0:8080 --reload -k utils.r_uvicorn_worker.RestartableUvicornWorker -w 2 \n\ autorestart=true\n\ startretries=1000\n\ redirect_stderr=true\n\ stdout_logfile=/var/log/be.log\n\ stdout_logfile_maxbytes=50MB\n\ environment=PYTHONUNBUFFERED=1\n\ " > /etc/supervisor/conf.d/be.conf EXPOSE 8080 RUN echo "\ [program:cron]\n\ directory=%(ENV_WORKDIR)s\n\ command= /opt/conda/envs/py38/bin/gunicorn delete:app -b 0.0.0.0:8000 --reload -k utils.r_uvicorn_worker.RestartableUvicornWorker \n\ autorestart=true\n\ startretries=1000\n\ redirect_stderr=true\n\ stdout_logfile=/var/log/cron.log\n\ stdout_logfile_maxbytes=5MB\n\ environment=PYTHONUNBUFFERED=1\n\ " > /etc/supervisor/conf.d/cron.conf EXPOSE 8000 FROM builder2 as image-dev RUN apt-get update && apt-get install -y --no-install-recommends krb5-user ADD . ${WORKDIR} RUN mv docker/dev/krb5.conf /etc/ FROM builder2 as image-test RUN apt-get update && apt-get install -y --no-install-recommends krb5-user ADD . ${WORKDIR} RUN mv docker/test/krb5.conf /etc/ FROM builder2 as image-txprod RUN apt-get update && apt-get install -y --no-install-recommends krb5-user ADD . ${WORKDIR} RUN mv docker/txprod/krb5.conf /etc/ FROM builder2 as image-idctest RUN apt-get update RUN apt-get update && apt-get install -y --no-install-recommends krb5-user ADD . ${WORKDIR} FROM builder2 as image-sxkj #RUN apt-get update #RUN apt-get update && apt-get install -y --no-install-recommends krb5-user ADD . ${WORKDIR} # FROM builder2 as builder3 # 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 # 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