【问题标题】:multiple command in postStart hook of a container容器的 postStart 挂钩中的多个命令
【发布时间】:2017-01-19 02:18:37
【问题描述】:

在 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"]

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

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

谢谢

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

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

    【讨论】:

    • 你能举个例子吗?
    【解决方案2】:

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

    【讨论】:

    • 我无法编辑,但要连接多个命令,需要在每行末尾添加连接“&&”。使用 | 而不是 > 避免添加 bash 连接
    • 谢谢!
    猜你喜欢
    • 2021-10-27
    • 1970-01-01
    • 2019-08-13
    • 2021-11-22
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    相关资源
    最近更新 更多