首页 > 解决方案 > 如果我的第一个任务失败,我想让 docker compose 失败

问题描述

如果我的第一个任务失败并且它不应该移动到 compose 文件中提到的其他任务,我想使 docker compose 失败。

标签: dockerdocker-composetask

解决方案


Docker-compose 不是脚本;这是环境的定义。通过定义构成环境的每个服务,在 docker-compose 文件中描述了环境。

当然,有时需要在初始化期间使服务失败。

这可以通过例如:

  • 为服务定义一个 Dockerfile,它在创建镜像时执行初始化,或者
  • 定义一个entrypoint脚本,该脚本在基于图像启动容器时进行初始化。

关键是, docker-compose 不应该失败。服务应该失败。


如果你绝对需要启动失败,你可以通过depends_on定义容器启动的顺序来定义服务之间的依赖关系;像这样:

version: "3.7"
services:
  web:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres

请注意,依赖服务将在父服务启动时立即启动started......它不会等待它们处于ready状态。


推荐阅读