在Docker容器上运行具有Conda依赖项的Python脚本

时间:2018-11-17 10:49:38

标签: python docker conda

我想从具有使用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

0 个答案:

没有答案