我已经在名为/service
的目录中创建了一个包含python项目的Docker映像。 Dockerfile看起来像:
FROM continuumio/miniconda:latest
SHELL ["/bin/bash", "-c"]
ADD . /service
WORKDIR /service
RUN conda env create -n my-env -f=environment.yml
RUN python setup.py develop
CMD ["/bin/bash"]
在本地,要从/service
运行项目
source activate my-env
cd src
python app.py
它可以正常运行。运行Docker映像时,如果执行相同操作,则会收到错误消息
Traceback (most recent call last):
File "app.py", line 3, in <module>
from src.core.metrics.metrics import ACTIVE
我已经确认src/core/metrics/metrics.py
确实包含在映像中,并且文件结构与本地项目的文件结构相同。
我还添加了
import os
print(os.getcwd())
到app.py
的开头,以查看当前工作目录是否存在问题。在本地打印结果为/full/path/to/project/service/src
。在Docker映像中,打印结果为/service/src
,这似乎表明正确的cwd。
为什么python app.py
在图片中不起作用?