Docker容器具有入口变量扩展和CMD参数
发布时间:2020-12-16 03:32:30 所属栏目:安全 来源:网络整理
导读:我想创建一个Docker Image,作为一个可执行文件,用户将一个令牌作为一个环境变量传递给它.可执行文件具有用户应通过停靠点CMD(通过Env进行认证来考虑git)的子命令. 然而,Docker没有将CMD附加到入口点. Dockerfile的相关部分如下所示: ENTRYPOINT ["/bin/sh",
我想创建一个Docker Image,作为一个可执行文件,用户将一个令牌作为一个环境变量传递给它.可执行文件具有用户应通过停靠点CMD(通过Env进行认证来考虑git)的子命令.
所以如果这个容器执行没有任何CMD覆盖和秘密作为MY_TOKEN变量,我会期望
被执行.如果用户启动具有覆盖的容器,例如
我会期望的
被执行.然而,如上所述,只有mycmd –token = secret被执行,CMD被忽略 – 无论我在启动时是否覆盖它,或者在Dockerfile中设置它. 最佳答案
使用/ bin / sh -c“脚本”语法,-c参数之后的任何内容都将成为脚本的参数.您可以使用$0和$@与他们的/ bin / sh脚本一起达到它们:
请注意,您还可以将您的entrypoint更改为添加到运行exec /usr/bin/mycmd –token = $MY_TOKEN“$@”的映像的shell脚本,并使用docker的exec语法执行该shell脚本:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |