В CMD
моего файла докеров это: ["python", "myproject/start_slide_server.py"]
Однако, чтобы это сработало, мне нужно установить PYTHONPATH
к /app
, который является родительским каталогом myproject
Если я запустил процесс докера и переопределил CMD
с участием bash
, Я могу запустить следующее
root@42e8998a8ff7:/app# export PYTHONPATH=.
root@42e8998a8ff7:/app# python myproject/start_slide_server.py
* Running on http://0.0.0.0:8090/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 236-035-556
И все работает как положено
Теперь добавляю строчку
RUN export PYTHONPATH=/app
перед
CMD ["python" , "myproject/start_slide_server.py"]
это просто не удалось
Traceback (most recent call last):
File "/app/myproject/start_slide_server.py", line 23, in <module>
from myproject import env
ImportError: No module named myproject
Похоже, что RUN
линия вообще не влияет
Я действительно не хочу определять ENV
на docker
командный уровень, потому что это PYTHONPATH
не будет меняться от одного изображения к другому.
Как я могу этого добиться?
Я могу использовать ENV
директива
ENV PYTHONPATH /app
Вы не должны перезаписывать PYTHONPATH
со своим путем, но добавьте его; в противном случае система не найдет установленные пакеты Python.
RUN export PYTHONPATH="$PYTHONPATH:/app"
ENV PYTHONPATH="$PYTHONPATH:/app"