我试图在docker容器中设置conda环境,但在docker文件中的环境创建阶段,它总是失败,错误如下:
conda activate" fails because shell is not initialized
下面是我的Dockerfile:
FROM pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-runtime
WORKDIR /app
# SET BASH AS CURRENT SHELL
RUN chsh -s /bin/bash
SHELL ["/bin/bash", "-c"]
# INSTALL ANACONDA
RUN apt-get update -y
RUN apt-get install -y wget && \
apt-get clean
RUN rm -rf /opt/conda && \
wget --quiet https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh -O ~/anaconda.sh && \
/bin/bash ~/anaconda.sh -b -p /opt/conda && \
rm ~/anaconda.sh && \
ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \
echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && \
find /opt/conda/ -follow -type f -name '*.a' -delete && \
find /opt/conda/ -follow -type f -name '*.js.map' -delete && \
/opt/conda/bin/conda clean -afy
COPY ./requirements.yml /tmp/requirements.yml
RUN conda update conda \
&& conda env create -f /tmp/requirements3.yml
RUN echo "conda activate nib_docker" >> ~/.bashrc
ENV PATH /opt/conda/envs/nib_docker/bin:$PATH
ENV CONDA_DEFAULT_ENV $nib_docker
COPY . .
CMD [ "python", "-u", "train.py" ]
最后得出结论:
要创建具有相应依赖项(conda和pip)的docker环境,可以执行以下步骤:
创建YML文件
创建yml文件,其中列出conda环境详细信息(conda和pip)。您可以使用以下命令将本地计算机中的现有conda环境导出到yml文件 在这里,我将在激活
myconda
环境后导出它YML文件如下所示:
我更喜欢将我的conda和pip依赖项分为两个独立的文件,这样,如果我想更改任何依赖项,我只会更改相应的文件,以避免在创建docker映像时再次下载所有包。 因此,编辑后,这两个文件现在将如下所示:
env_config.yml
env_pip_config.txt
最后,Dockerfile:
Dockerfile
相关问题 更多 >
编程相关推荐