如何将参数追加到容器命令?
我有使用Dockerfile
构build的node.js应用程序,它定义了:
CMD node dist/bin/index.js
我想“追加”一个参数,因为它是在Dockerfile中定义的,即我想执行程序作为node dist/bin/index.js foo
。
在docker的土地上,我可以通过以下方式实现这一点:
docker build --tag test . docker run test foo
在 kubernetes我不能使用command
因为这将覆盖进入ENTRYPOINT
。 我不能使用args
因为它会覆盖Dockerfile
定义的cmd
。 看来我唯一的select是:
cmd: ["node", "dist/bin/index.js", "foo"]
有没有办法将一个参数附加到容器命令,而不重新定义整个Docker CMD
定义?
除了设置cmd
之外,我没有办法实现你想要的,就像你刚才提到的那样。
让我知道如果我误解了你的问题,但是如果你只是想传递一个参数到POD,你可以在入口脚本中运行你的命令,并使用一个环境variables,你传递给该命令的容器。 这应该适用于任何Pod规范(例如作为部署描述的一部分)。
例
apiVersion: v1 kind: Pod metadata: name: envar-demo labels: purpose: demonstrate-envars spec: containers: - name: envar-demo-container image: gcr.io/google-samples/node-hello:1.0 env: - name: DEMO_GREETING value: "Hello from the environment"
欲了解更多,请参阅此文
没办法追加。 您可以在container.spec上设置command:
或args:
您可以在这里了解更多关于如何覆盖CMD / ENTRYPOINT的信息: https ://kubernetes.io/docs/concepts/configuration/container-command-args/