Kubernetes 命令参数被忽略
Kubernetes command arguments being ignored
当 运行 来自 linux 终端命令的特定命令如下时:
/opt/front/arena/sbin/ads_start ads -db_server vmazfassql01 -db_name Test1
在常规 docker compose yaml 文件中,我们这样定义它:
ENTRYPOINT ["/opt/front/arena/sbin/ads_start", "ads" ]
command: ["-db_server vwmazfassql01","-db_name Test1"]
然后我尝试将其转换为 Kubernetes
command: ["/opt/front/arena/sbin/ads_start","ads"]
args: ["-db_server vwmazfassql01","-db_name Test1"]
或不带引号的 args
command: ["/opt/front/arena/sbin/ads_start","ads"]
args: [-db_server vwmazfassql01,-db_name Test1]
但我在这两种情况下都遇到了错误:
Unknown parameter value '-db_server vwmazfassql01'
Unknown parameter value '-db_name Test1'
然后我尝试从 args 中删除破折号,但似乎这些值被忽略并且没有设置。在初始化值过程中,在容器启动期间,这些属性似乎具有默认值,例如db_name:“广告”。至少在初始化期间它是如何在日志中打印出来的。
我尝试了更多的可能性:
要在命令中定义所有这些:
command:
- /opt/front/arena/sbin/ads_start
- ads
- db_server vwmazfassql01
- db_name Test1
以稍微不同的方式定义它们:
command: ["/opt/front/arena/sbin/ads_start","ads"]
args:
- db_server vwmazfassql01
- db_name Test1
command: ["/opt/front/arena/sbin/ads_start","ads"]
args: [db_server vwmazfassql01,db_name Test1]
它们再次被忽略,并且没有被设置。
难道我做错了什么?我该如何解决这个问题?谢谢
尝试分隔参数
类似于:
command: ["/opt/front/arena/sbin/ads_start", "ads"]
args: ["-db_server", "vwmazfassql01", "-db_name", "Test1"]
或者,它甚至可以像这样工作并且看起来更干净:
command: ["/opt/front/arena/sbin/ads_start"]
args: ["ads", "-db_server", "vwmazfassql01", "-db_name", "Test1"]
这遵循了 运行 来自代码的外部命令的一般方法(一个随机示例是 python 子进程模块),您可以在其中指定每个单独的命令片段,这意味着它自己的意思。
当 运行 来自 linux 终端命令的特定命令如下时:
/opt/front/arena/sbin/ads_start ads -db_server vmazfassql01 -db_name Test1
在常规 docker compose yaml 文件中,我们这样定义它:
ENTRYPOINT ["/opt/front/arena/sbin/ads_start", "ads" ]
command: ["-db_server vwmazfassql01","-db_name Test1"]
然后我尝试将其转换为 Kubernetes
command: ["/opt/front/arena/sbin/ads_start","ads"]
args: ["-db_server vwmazfassql01","-db_name Test1"]
或不带引号的 args
command: ["/opt/front/arena/sbin/ads_start","ads"]
args: [-db_server vwmazfassql01,-db_name Test1]
但我在这两种情况下都遇到了错误:
Unknown parameter value '-db_server vwmazfassql01'
Unknown parameter value '-db_name Test1'
然后我尝试从 args 中删除破折号,但似乎这些值被忽略并且没有设置。在初始化值过程中,在容器启动期间,这些属性似乎具有默认值,例如db_name:“广告”。至少在初始化期间它是如何在日志中打印出来的。
我尝试了更多的可能性: 要在命令中定义所有这些:
command:
- /opt/front/arena/sbin/ads_start
- ads
- db_server vwmazfassql01
- db_name Test1
以稍微不同的方式定义它们:
command: ["/opt/front/arena/sbin/ads_start","ads"]
args:
- db_server vwmazfassql01
- db_name Test1
command: ["/opt/front/arena/sbin/ads_start","ads"]
args: [db_server vwmazfassql01,db_name Test1]
它们再次被忽略,并且没有被设置。 难道我做错了什么?我该如何解决这个问题?谢谢
类似于:
command: ["/opt/front/arena/sbin/ads_start", "ads"]
args: ["-db_server", "vwmazfassql01", "-db_name", "Test1"]
或者,它甚至可以像这样工作并且看起来更干净:
command: ["/opt/front/arena/sbin/ads_start"]
args: ["ads", "-db_server", "vwmazfassql01", "-db_name", "Test1"]
这遵循了 运行 来自代码的外部命令的一般方法(一个随机示例是 python 子进程模块),您可以在其中指定每个单独的命令片段,这意味着它自己的意思。