在 Dockerfile 中不能 运行 2 个 conda 命令

Cant run 2 conda commands in Dockerfile

我有一个 docker 文件,如:

FROM conda/miniconda3-centos7
WORKDIR /tmp 
COPY app/ /tmp 
RUN conda install gcc_linux-64 
RUN conda install gxx_linux-64 
CMD ["python", "Hello_World.py"]

代码在第一个 运行 conda 命令后卡住。我得到的错误是:

WARNING: The conda.compat module is deprecated and will be removed in a future release.


==> WARNING: A newer version of conda exists. <==
    current version: 4.6.11
    latest version: 4.9.2

Please update conda by running

$ conda update -n base -c defaults conda


Removing intermediate container 277edb28a107
 ---> e6b51d71eac0
Step 7/8 : RUN conda install gxx_linux-64
 ---> Running in 94166fbfff2a
Traceback (most recent call last):
  File "/usr/local/bin/conda", line 12, in <module>
    from conda.cli import main
ModuleNotFoundError: No module named 'conda'
The command '/bin/sh -c conda install gxx_linux-64' returned a non-zero code: 1

你能推荐一下吗?

在您的 Dockerfile 中添加 conda update -n base -c defaults conda 可以解决上述问题。

您还可以考虑使用 && 来优化 docker 图像的创建。 .

优化的 Dockerfile 将是:

FROM conda/miniconda3-centos7
WORKDIR /arnav
COPY app/ /arnav
RUN conda update -n base -c defaults conda \
    && conda install gcc_linux-64 && conda install gxx_linux-64
CMD ["python", "Hello_World.py"]