Docker contain直接打开到指定的conda环境中

Docker contain直接打开到指定的conda环境中,docker,conda,Docker,Conda,我有一个Docker容器,其中有两个conda环境。一个在绝大多数情况下都会被使用,因此我希望在该环境中自动启动(目前在基本环境中启动)。基于此,我尝试将此添加到Dockerfile的末尾: # Activate env SHELL ["conda", "run", "-n", "py3", "/bin/bash", "-c"] ENTRYPOINT ["conda", "run", "-n", "py3", "python", "pass.py"] 其中run.py只包含打印(“hello

我有一个Docker容器,其中有两个conda环境。一个在绝大多数情况下都会被使用,因此我希望在该环境中自动启动(目前在基本环境中启动)。基于此,我尝试将此添加到Dockerfile的末尾:

# Activate env
SHELL ["conda", "run", "-n", "py3", "/bin/bash", "-c"]
ENTRYPOINT ["conda", "run", "-n", "py3", "python", "pass.py"]
其中run.py只包含
打印(“hello world”)

这导致脚本运行,但在我运行docker容器后docker容器不会保持打开状态,尽管在我删除这些行时会保持打开状态。如何使容器在指定环境中打开并保持打开状态

我的Dockerfile如下所示:

FROM nvidia/cuda:10.1-cudnn7-devel-centos7

WORKDIR /app/
COPY ./*.* ./
ENV CONDA_DIR "/opt/conda"
ENV PATH "$CONDA_DIR"/bin:$PATH
ONBUILD ENV PATH "$CONDA_DIR"/bin:$PATH

RUN  \
   yum -y install epel-release && \
    yum -y update && \
    yum install -y \
    bzip2 \
    curl \
    which \
    libXext \
    libSM \
    libXrender \
    git \
    cuda-nvcc-10-1 \
    openssh-server \
    postgresql-devel \
    yum clean all && rm -rf /var/cache/yum/*


RUN CONDA_VERSION="4.7.12" && \
    curl -L \
       https://repo.continuum.io/miniconda/Miniconda3-${CONDA_VERSION}-Linux-x86_64.sh -o miniconda.sh && \
    mkdir -p "$CONDA_DIR" && \
    bash miniconda.sh -f -b -p "$CONDA_DIR" && \
    echo "export PATH=$CONDA_DIR/bin:\$PATH" > /etc/profile.d/conda.sh && \
    rm miniconda.sh && \
    conda config --add channels conda-forge && \
    conda config --set auto_update_conda False && \
    pip install --upgrade pip && \
    rm -rf /root/.cache/pip/*


RUN conda env create -f py2_env.yaml
RUN conda env create -f py3_env.yaml

# Activate env
SHELL ["conda", "run", "-n", "py3", "/bin/bash", "-c"]
ENTRYPOINT ["conda", "run", "-n", "py3", "python", "pass.py"]

Docker容器定义为运行单个进程并退出。您希望单个流程是什么?(对于像Web服务器这样的另一种进程来说,在退出后“保持打开”意味着什么?)我想进入容器内部,运行一个jupyter笔记本服务器。我还希望能够使用命令行。