當用戶同時寫了command和args的時候自然是可以覆蓋DockerFile中ENTRYPOINT的命令行和參數,那么對於具體情況呢,比如僅僅寫了command或者args的時候呢?完整的情況分類如下:
- 如果
command和args均沒有寫,那么用Docker默認的配置。 - 如果
command寫了,但args沒有寫,那么Docker默認的配置會被忽略而且僅僅執行.yaml文件的command(不帶任何參數的)。 - 如果
command沒寫,但args寫了,那么Docker默認配置的ENTRYPOINT的命令行會被執行,但是調用的參數是.yaml中的args。 - 如果如果
command和args都寫了,那么Docker默認的配置被忽略,使用.yaml的配置。
| mage Entrypoint | Image Cmd | Container command | Container args | Command run |
|---|---|---|---|---|
[/ep-1] |
[foo bar] |
<not set> | <not set> | [ep-1 foo bar] |
[/ep-1] |
[foo bar] |
[/ep-2] |
<not set> | [ep-2] |
[/ep-1] |
[foo bar] |
<not set> | [zoo boo] |
[ep-1 zoo boo] |
[/ep-1] |
[foo bar] |
[/ep-2] |
[zoo boo] |
[ep-2 zoo boo] |
