在k8s的清单中更改Pod的docker image的CMD时,不能使用command
只要仔细阅读文件,就可以找到写下的内容。
但由于容易出错,我做了个备忘录。
-
- ちゃんと読むべきもの
https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/
https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes
总结
-
- マニフェストのcommandはDockerfileのENTRYPOINT
- マニフェストのargsはDockerfileのCMD
apiVersion: v1
kind: Pod
metadata:
name: command-demo
labels:
purpose: demonstrate-command
spec:
containers:
- name: command-demo-container
image: debian
command: ["printenv"] # こっちはENTRYPOINT
args: ["HOSTNAME", "KUBERNETES_PORT"] # こっちはCMD
restartPolicy: OnFailure
请注意
此外,请注意由于对command和args分别进行了定义,其行为可能会有所变化。
Dockerfile的内容
-
- ENTRYPOINT: echo
- CMD: HOSTNAME
如果是那样的话 (If it were like that)
commandargs実行されるコマンド未定義未定義echo HOSTNAMEprintenv未定義printenv未定義KUBERNETES_PORTecho KUBERNETES_PORTprintenvKUBERNETES_PORTprintenv KUBERNETES_PORT
成为。