Запустите python файл в подкаталоге Docker - PullRequest
0 голосов
/ 13 апреля 2020

У меня следующая файловая структура

project 
├── app
│   ├── main.py
│   └── combine.py
│   └── scrape.py
├── resources
|    └── secrets.py
|    └── config.py
|    └── requirements.txt
|--- Dockerfile

Мой Dockerfile выглядит как

FROM python:3.8
RUN mkdir /project
WORKDIR /project

COPY ./resources/requirements.txt ./
ADD ./resources/. /resources/
ADD ./app/. /app/

RUN pip install -r ./requirements.txt

CMD [ "python", "./app/main.py" ]

Я создаю свой образ с использованием docker build -t my-app . и запускаю с использованием docker run my-app

Я получаю следующую ошибку python: can't open file './app/main.py': [Errno 2] No such file or directory

Можно ли сохранить структуру файла подкаталога и успешно запустить образ Docker? Все учебники / вопросы, которые я видел ранее, содержат файл Docker в том же каталоге, что и весь код, от которого он зависит - это требование? Заранее спасибо!

1 Ответ

2 голосов
/ 13 апреля 2020

Ваш WORKDIR установлен на /project.

Ваша CMD запускается как «./app», что означает «/project/app'.

Вы копируете приложение в '/ app', поэтому используйте это:

CMD [ "python", "/app/main.py" ]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...