在Docker中激活conda环境的问题

时间:2019-12-03 16:55:18

标签: python bash docker conda

我想在docker映像中永久设置一个conda环境,以便conda包的功能可以被作为入口点参数的脚本使用。 这是我创建的dockerfile。

FROM continuumio/anaconda3

RUN conda create -n myenv
RUN echo "source activate myenv" > ~/.bashrc
ENV PATH:="/opt/conda/envs/myenv/bin:$PATH"
SHELL ["/bin/bash", "-c"]

ENTRYPOINT ["python3"]

当我运行docker容器时,似乎~/.bashrc文件不是源文件。我在做错什么吗?

谢谢

1 个答案:

答案 0 :(得分:0)

要解决这两种情况,请使用'SHELL [“ / bin / bash”,“-i”,“-login”,“-c”]'

-或-

通过更改“ *)return;”,以非交互方式编辑图像中的.bashrc文件,以不退出。阅读“ *);;”

使用第一个选项bash会抱怨作业控制和ttys,但该错误可以忽略。

问题的原因:

.bashrc文件包含以下命令:

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

,如果不处于交互模式,这将导致bash停止获取文件。 (-i标志)

不幸的是,我还没有找到将conda节自动插入.bash_profile或.profile而不是(或附加到).bashrc的方法,因为似乎没有选择覆盖或添加到conda init检查哪些文件进行修改的列表。