我在应用程序文件夹中有一个environment.yml
我在我的Dockerfile里面有这样的内容:
RUN conda env create
RUN source activate myenvfromymlfile
当我运行容器时,环境没有被激活。如果我执行 conda env list
命令,我看到 /opt/conda
被激活:
root@9c7181cf86aa:/app# conda env list
# conda environments:
#
myenvfromymlfile /opt/conda/envs/myenvfromymlfile
root * /opt/conda
如果我连接到容器,就可以手动运行
source activate myenvfromymlfile
,它可以正常工作,但为什么在RUN指令中不起作用呢?在需要conda的dockerfiles示例中,我经常看到这种情况。
CMD [ "source activate your-environment && exec python application.py" ]
请问为什么需要使用 && 将它们组合成一个单一的命令?为什么在 RUN 指令中运行 "source activate" 无法工作?我希望我的 Dockerfile 看起来像这样:
RUN conda env create
RUN source activate myenvfromymlfile
ENTRYPOINT ["python"]
CMD ["application.py"]