为什么我在构建 docker 时得到"conda:找不到命令",而在基本映像中"conda"命令工作正常?



我正试图从一个基本的图像,Dockerfile是这样的:

FROM my/base/image:latest
RUN conda install package-name
RUN rm -rf /tmp/*
CMD ["/bin/bash"]

,我得到了&;conda: command not found&;但是,如果我直接将基本映像作为容器运行,conda命令可以正常工作。此外,如果我在Dockerfile中添加RUN source ~/.bashrc,当构建进程运行到这一行时,它将进入另一个终端,并且不会响应任何命令。在这种情况下发生了什么?如果有人能给我任何建议和建议,我将非常感激。提前谢谢。

~/.bashrc来自交互式shell,这就是为什么当您在容器中使用它时它可以工作的原因。在构建过程中,Dockerfile不是这种情况。

在conda docker映像中,conda可执行文件被简单地添加到PATH中。

ENV PATH /opt/conda/bin:$PATH

这是一个简单的解决方案。如果您不想更改PATH,也可以调用/opt/conda/bin/conda install ...(根据您的conda安装进行调整)。

如果您想获得~/.bashrc的源代码,您可以使用SHELL指令来覆盖使用bash交互式shell命令的默认shell(多亏了i标志)。

SHELL ["/bin/bash", "-i", "-c"] 
RUN conda install ...

然而,这似乎是一种不太传统的方法。

相关内容

  • 没有找到相关文章

最新更新