Я создал образ Docker, содержащий проект Python, в каталоге с именем /service
.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
не работает в изображении?