You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过--set参数为Helm chart的Deployment传递容器command启动命令

问题根因

你遇到的配置不生效有三个核心错误:

  1. 模板渲染逻辑错误:直接输出数组类型的.Values.command.cmd不会自动转换为合法的YAML数组格式,必须用toYaml函数转换并匹配正确缩进
  2. --set传参格式错误:不需要手动给每个参数加- 前缀,toYaml会自动为数组元素生成YAML列表标记
  3. 字符错误:你之前传的-с用了西里尔字母的c,不是英文字母c,就算格式正确执行也会报错

第一步:修正Deployment模板

将你deployment.yaml里的command渲染部分替换为如下内容:

{{- if $.Values.command }}
command:
  {{- toYaml .Values.command.cmd | nindent 12 }}
{{- end }}

这里用toYaml将数组参数转为YAML格式,nindent 12保证缩进和同级的securityContext配置对齐。


第二步:调整安装传参

方式1:直接用--set传参(适合短脚本)

你需要的command实际是3个元素的数组,无需拆分脚本为多行传参,正确命令如下:

helm install NAME nexus/stand \
  --set command.cmd[0]=/bin/sh \
  --set command.cmd[1]=-c \
  --set command.cmd[2]="while true; do sleep 60; done"

方式2:用值文件传参(适合多行脚本,更易维护)

新建custom-values.yaml文件,内容如下:

command:
  cmd:
    - /bin/sh
    - -c
    - |
      while true; do
        sleep 60;
      done

执行安装时指定值文件即可:

helm install NAME nexus/stand -f custom-values.yaml

第二种方式渲染出来的配置和你预期的效果完全一致。


内容的提问来源于stack exchange,提问作者Maksim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:54:03