kubernetes 容器的postStart钩子中的多个命令

y3bcpkx1  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(2)|浏览(130)

在kubernetes Deployment yaml文件中,是否有一种简单的方法可以在容器的postStart钩子中运行多个命令?
我试着做这样的事情:

lifecycle:
  postStart:
    exec:
      command: ["/bin/cp", "/webapps/myapp.war", "/apps/"]
      command: ["/bin/mkdir", "-p", "/conf/myapp"]
      command: ["touch", "/conf/myapp/ready.txt"]

字符串
但这不管用。(看起来像只执行最后一个命令)
我知道我可以在容器映像中嵌入一个脚本,然后在那里简单地调用它。但我希望能够在yaml文件中自定义这些命令,而不需要接触容器映像。
谢谢

55ooxyrt

55ooxyrt1#

只允许使用一个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

字符串

b4lqfgs4

b4lqfgs42#

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

#!/bin/bash

command_one
command_two
command_three

字符串

相关问题