容器的postStart挂钩中的多个命令

are*_*ier 15 kubernetes

在kubernetes部署yaml文件有一个简单的方法在容器的postStart钩子中运行多个命令?

我正在尝试做这样的事情:

lifecycle:
  postStart:
    exec:
      command: ["/bin/cp", "/webapps/myapp.war", "/apps/"]
      command: ["/bin/mkdir", "-p", "/conf/myapp"]
      command: ["touch", "/conf/myapp/ready.txt"]
Run Code Online (Sandbox Code Playgroud)

但它不起作用.(看起来只执行最后一个命令)

我知道我可以在容器图像中嵌入一个脚本并简单地在那里调用它...但我希望能够在yaml文件中自定义这些命令而不触及容器图像.

谢谢

abo*_*lov 32

command允许一个,但你可以sh -c像这样使用

  lifecycle:
    postStart:
      exec:
        command:
          - "sh"
          - "-c"
          - >
            if [ -s /var/www/mybb/inc/config.php ]; then
            rm -rf /var/www/mybb/install;
            fi;
            if [ ! -f /var/www/mybb/index.php ]; then
            cp -rp /originroot/var/www/mybb/. /var/www/mybb/;
            fi
Run Code Online (Sandbox Code Playgroud)

  • 我无法进行编辑,但是必须串联多个命令才能在每行末尾添加串联“ &&”。使用`|`而不是`>`避免添加bash串联 (2认同)

Bru*_*sma 5

您还可以创建一个 bash 或 make 脚本来对所有这些命令进行分组。

  • 你能给个例子吗 ? (2认同)