【发布时间】:2020-09-10 09:40:52
【问题描述】:
我正在尝试 dockerize 一个 python 应用程序,使用 conda 进行包管理。
我使用以下方法生成了一个规范文件:
conda list --explicit > spec-file.txt
我的 Dockerfile 中有以下代码:
FROM conda/miniconda3
RUN conda create -n env --file ./spec-file.txt
RUN echo "source activate env" > ~/.bashrc
ENV PATH /opt/conda/envs/env/bin:$PATH
当我运行docker-compose build 时,它产生了以下错误:
CondaFileIOError: './spec-file.txt'. [Errno 2] No such file or directory: './spec-file.txt'
Dockerfile 和 specfile 都在同一个目录中。我尝试过使用绝对路径,但也没有用。
【问题讨论】:
-
只需修改命令为
RUN conda create -n env --file spec-file.txt -
这仍然会导致同样的问题
-
你不在
COPYingspec-file.txt中,所以它不在图像中。.bashrc设置将无效(运行 Docker 容器的许多典型路径根本不运行 shell,更不用说登录 shell),您可能希望使用ENV语句手动进行虚拟环境设置。