我想从具有使用Conda设置依赖项的Docker容器中运行Python脚本,即:
Dockerfile:
FROM continuumio/miniconda3
ADD environment.yml /environment.yml
RUN conda env create -f /environment.yml
# Pull the environment name out of the environment.yml
RUN echo "source activate $(head -1 /environment.yml | cut -d' ' -f2)" > ~/.bashrc
ENV PATH /opt/conda/envs/$(head -1 /environment.yml | cut -d' ' -f2)/bin:$PATH
ADD hello.py /
CMD ["python", "./hello.py" ]
environment.yml包含所有依赖项,并且python脚本现在只是一个世界:
import zeep
print("hello")
但是在运行容器时,我得到了:
⇒ docker run hello
Traceback (most recent call last):
File "./hello.py", line 1, in <module>
import zeep
ModuleNotFoundError: No module named 'zeep'
那是为什么?如果以交互方式启动它,则可以正常运行脚本。
⇒ docker run -it hello /bin/bash
(smoke-test) root@1c593ac836b0:/# python hello.py
hello