Mor*_*den 3 docker anaconda conda dockerfile
我正在尝试使用一些 conda 环境创建一个 docker 容器。当我以交互模式运行容器时
conda update --all
conda env create -f env.yml
Run Code Online (Sandbox Code Playgroud)
运行没有问题。但是,每当我尝试使用收到的 Docker 文件执行这些命令时
/bin/sh: 1: conda: command not foud
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
因此,似乎正在使用 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"
Run Code Online (Sandbox Code Playgroud)
出现以下错误
/bin/bash: conda: command not found
Run Code Online (Sandbox Code Playgroud)
ENV在 Dockerfile 中执行 anaconda 之前,您必须在构建时使用变量将 anaconda 添加到 PATH 。
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
Run Code Online (Sandbox Code Playgroud)
更新 .bashrc 中的 PATH 将使在容器内调用 conda 成为可能,当使用 运行时docker run,而不是在RUNdocker 文件中的其他语句中。
| 归档时间: |
|
| 查看次数: |
3423 次 |
| 最近记录: |