我必须为我的应用程序编写一个部署文件,它在运行时接受运行时命令和参数。例如,./foo bar -a=A -b=B
这是我的部署文件:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: foo
spec:
replicas: 1
template:
metadata:
labels:
name: foo
spec:
containers:
- name: foo
image: username/image:tag
# command that to be executed at run time
command: ["bar"]
args:
# This is the flag to pass at runtime
- -a=A
- -b=B
ports:
- containerPort: 9500
Run Code Online (Sandbox Code Playgroud)
它说找不到或不存在容器命令“foo”。我正在传递一个脚本作为入口点,它有exec /usr/local/bin/foo. 它出什么问题了 ?
如果你想./foo bar -a=A -b=B在容器中启动,你的部署应该包含
- name: foo
image: username/image:tag
command: ["foo"]
args: ["bar", "-a=A", "-b=B"]
Run Code Online (Sandbox Code Playgroud)
https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/
确保在图像内的$PATH环境变量中有foo二进制文件的路径username/image:tag(或使用完整路径/usr/local/bin/foo)。
您可以$PATH通过
kubectl run test -ti --rm --image=username/image:tag --command -- echo $PATH
kubectl run test -ti --rm --image=username/image:tag --command -- foo
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5102 次 |
| 最近记录: |