在dockerfile中运行conda更新时出现问题

摩根·格拉登

我正在尝试使用一些conda环境创建一个docker容器。当我在交互模式下运行容器时

conda update --all
conda env create -f env.yml

运行没有问题。但是,每当我尝试使用Docker文件执行这些命令时,我都会收到

/bin/sh: 1: conda: command not foud

Docker文件如下所示:

FROM ubuntu:latest
RUN apt-get update && \
    apt-get install unzip && \
    mkdir /install && \
    apt-get install nano
COPY Anaconda3-2018.12-Linux-x86_64.sh env.yml /install/
WORKDIR /install
RUN bash Anaconda3-2018.12-Linux-x86_64.sh -b && \
    echo "export PATH="/root/anaconda3/bin:$PATH"" >> ~/.bashrc && \
    /bin/bash -c "source ~/.bashrc"
RUN conda update --all
RUN conda env create -f env.yml

因此似乎使用了sh而不是bash,因此我将Dockerfile编辑为以下内容:

FROM ubuntu:latest
RUN apt-get update && \
    apt-get install unzip && \
    mkdir /install && \
    apt-get install nano
COPY Anaconda3-2018.12-Linux-x86_64.sh env.yml /install/
WORKDIR /install
RUN bash Anaconda3-2018.12-Linux-x86_64.sh -b && \
    echo "export PATH="/root/anaconda3/bin:$PATH"" >> ~/.bashrc && \
    /bin/bash -c "source ~/.bashrc"
RUN /bin/bash -c "conda update --all"

有以下错误

/bin/bash: conda: command not found

您必须在构建期间使用ENV变量将anaconda添加到PATH,然后才能在Dockerfile中执行anaconda。

RUN bash Anaconda3-2018.12-Linux-x86_64.sh -b && \
    echo "export PATH="/root/anaconda3/bin:$PATH"" >> ~/.bashrc && \
    /bin/bash -c "source ~/.bashrc"
ENV PATH /root/anaconda3/bin:$PATH
RUN conda update --all

使用.bashrc更新.bashrc中的PATH可以在使用时在容器内调用conda docker run,但不能在RUNdocker文件中的其他语句中调用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章