【问题标题】:How can I build a shell script to build a Docker-Compose Image and start up the Docker container if successful?如果成功,如何构建 shell 脚本来构建 Docker-Compose 映像并启动 Docker 容器?
【发布时间】:2021-12-14 03:36:35
【问题描述】:

我正在尝试编写一个 shell 脚本来尝试构建 Docker-Compose 映像,如果成功,则通过执行 Docker-Compose up -d 启动 Docker 容器。 在第二步中,我将一些 JSON 文件加载到 Mongo 中,但是如果该步骤出现问题,我想停止所有 Docker 服务并打印一条错误消息“Could not start Docker service because there was a problem seeding数据库。”

我的问题是我不知道如何检查图像是否在第一步中创建成功。 (我想停下来打印一条消息,说构建中有错误。)

我想我可以找出一些东西来检查两个服务是否最终都在运行,但我想知道是否有办法打印出无法加载的有问题的 JSON 文件的名称。

是否有人有类似的脚本可供我使用或修改以供我自己使用?

【问题讨论】:

    标签: bash docker docker-compose sh


    【解决方案1】:

    如果您只想在启动容器之前构建映像,则不需要脚本:

    docker-compose --build up

    如果你必须使用脚本,你可以调用上面的命令并检查它的退出代码。无需为 docker-compose 文件中的每个服务单独调用 docker build

    【讨论】:

      【解决方案2】:

      我的理解是你试图根据构建命令是否成功来分支脚本的逻辑。以下是您可以执行的操作:

      cat create-image.sh

      #!/bin/bash
      
      docker build -q -t test-image .
      
      if [ $? -eq 0 ]; then
         echo OK, images created
      else
         echo FAIL, image not created
         exit 1
      fi
      
      echo "...DOING OTHER THINGS... (like docker-compose up)"
      

      如果这就是您要找的,请告诉我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-09
        • 2017-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-15
        • 2018-05-23
        • 1970-01-01
        相关资源
        最近更新 更多