【问题标题】:How to start docker containers and keep them alive during script execution on MacOS如何在 MacOS 上的脚本执行期间启动 docker 容器并使其保持活动状态
【发布时间】:2022-11-04 19:32:42
【问题描述】:

我有一个 shell 脚本,它试图在 for 循环中启动两个 docker 容器。在检测到标准输出中的输出“服务将在端口上运行”之前,该脚本不应继续执行其余部分。

以下代码在 linux 上运行良好:

for i in "${functionsToStart[@]}"
 do
   echo "Starting ${i}"
   (bash start-server.sh) | grep -q "Service will run on port"
 done

#more commands
.
.
.

然而,在 MacOs 中,这将在虚拟环境(docker 桌面)中启动 docker,并且 grep 永远不会匹配。

当我尝试将其作为子进程运行时:

(bash start-server.sh &) | grep -q "Service will run on port"

grep 匹配得很好,但它也杀死了我的子进程,因此也杀死了容器。

我需要容器在脚本执行的其余部分继续运行,我如何在 MacOs 中执行此操作?

【问题讨论】:

    标签: bash docker macos shell


    【解决方案1】:

    对于任何为 MacOs 解决这个问题的人。

    上面提到的 start-server.sh 脚本是启动我的 docker 容器的脚本。这里的答案是在脚本中执行 docker run 命令时使用正确的选项:

    码头运行-itd

    【讨论】:

      猜你喜欢
      • 2018-03-20
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      • 2021-07-16
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多