sed:-e 表达式 #1,字符 1:未知命令:“”,当将 sed 作为 Kubernetes arg 运行时

问题描述 投票:0回答:1

我正在尝试运行 Apache Pulsar 容器作为 Kubernetes 部署的一部分。我需要更改 Apache Pulsar 的端口。我的 Kubernetes yaml 中的 Pulsar 条目如下所示

- name: pulsar
  image: apachepulsar/pulsar:3.1.2
  args: ["sed", "-i", "'s/webServicePort=8080/webServicePort=8082/g'", "conf/standalone.conf", ";", "bin/pulsar", "standalone"]

我运行 play kube 并收到以下错误:

sed: -e expression #1, char 1: unknown command: `''
kubernetes sed apache-pulsar
1个回答
0
投票

我相信这是由于

sed
表达式周围有额外的单引号造成的。

尝试这样做来修复它:

args
行替换为:

args: ["sh", "-c", "sed -i 's/webServicePort=8080/webServicePort=8082/g' conf/standalone.conf && bin/pulsar standalone"]

此更正使用

sh -c
执行 shell 命令,并正确格式化
sed
命令,无需额外引号。
&&
用于在
bin/pulsar standalone
命令成功执行后运行
sed

© www.soinside.com 2019 - 2024. All rights reserved.