CMD我的 dockerfile 是这样的:["python", "myproject/start_slide_server.py"]
但是,为了使其工作,我需要将其设置PYTHONPATH为/app,它是myproject
如果我启动 docker 进程并覆盖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 Code Online (Sandbox Code Playgroud)
它按预期工作
现在我添加一行
RUN export PYTHONPATH=/app
Run Code Online (Sandbox Code Playgroud)
前
CMD ["python" , "myproject/start_slide_server.py"]
Run Code Online (Sandbox Code Playgroud)
它刚刚失败了
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 Code Online (Sandbox Code Playgroud)
看起来这RUN条线根本没有任何影响
我真的不想ENV在docker命令级别定义,因为这PYTHONPATH不会从一个图像更改为下一个图像。
我怎样才能实现这个目标?
我可以使用该ENV指令
ENV PYTHONPATH /app
Run Code Online (Sandbox Code Playgroud)
小智 5
你不应该用你的路径覆盖它PYTHONPATH,而是附加它;否则系统将找不到已安装的Python包。
RUN export PYTHONPATH="$PYTHONPATH:/app"ENV PYTHONPATH="$PYTHONPATH:/app"| 归档时间: |
|
| 查看次数: |
26479 次 |
| 最近记录: |