如何将参数追加到容器命令?

我有使用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/