0
手動運行腳本我有一個dockerfile具有下列結束Dockerfile CMD腳本不同運行到集裝箱
CMD python app/start.py arg1 arg2 arg3
,當我嘗試打電話run
(通過撰寫)它給了我一個錯誤,從我的Python腳本:
Traceback (most recent call last):
File "app/start.py", line 4, in <module>
from utils.foo import bar
ImportError: No module named 'utils'
然而,當我打電話run ... bash
(再次通過撰寫)或撰寫命令參數設置爲bash
,然後在出現運行bash的終端:
python app/start.py arg1 arg2 arg3
該腳本運行完美。
我認爲這是如何處理啓動時處理文件夾結構。有什麼我不明白CMD
如何在dockerfiles中工作?
更新
- 與
ENTRYPOINT
代替CMD
運行沒有什麼區別 - 設置
CMD
到bash -c "python app/start.py arg1 arg2 arg3"
沒什麼區別
使用'import os,inspect;在'sys.path'中添加'start.py'的位置; sys.path.insert(0,os.path.realpath(os.path.abspath(os.path.join(os.path.dirname(inspect.getfile(inspect.currentframe())),'app'))) )'。 – alvits
甚至更簡單的'import sys,os; sys.path.insert(0,os.path.join(os.getcwd(),'app'))'。 – alvits