说我有这个:
FROM oresoftware/lmx-broker:0.2.1
ENTRYPOINT ['/docker-entrypoint.sh']
如果我不使用CMD
,CMD
会默认使用基本图像中设置的值吗?我使用ENTRYPOINT
会否覆盖基本映像中的ENTRYPOINT
?我使用CMD
会否覆盖基本映像中的CMD
?
基本上,我的目标是重写基本映像的ENTRYPOINT,但能够发现/重用CMD,这样我的docker-entrypoint.sh
文件将如下所示:
#!/bin/sh
"$@" | capture-stdio
其中“ $ @”在基本图片中默认为CMD。
答案 0 :(得分:1)
从文档中
注意:如果从基本映像定义了CMD,则设置ENTRYPOINT会将CMD重置为空值。
在这种情况下,必须在当前图像中定义CMD以具有值。
因此,回答您的问题将不起作用。 To read more
祝你好运。
答案 1 :(得分:0)
如果您在Dockerfile中使用ENTRYPOINT ['/docker-entrypoint.sh']
,它将覆盖入口点。
简而言之,如果您使用基本映像中定义的任何内容并在映像中重新定义,则它将覆盖其CMD
或entrypoint
或任何其他配置,例如{{1} }等。
一旦您在Dockerfile中定义了入口点,传递给ENV
的任何东西都将被视为入口点的参数。
只需运行即可查看基本图像的CMD
和CMD
entrypoint
或查看基本图像的入口点
docker inspect oresoftware/lmx-broker:0.2.1