【发布时间】:2021-10-18 15:33:07
【问题描述】:
使用 compose 我只想在另一个服务以代码 0 退出后启动一个服务。
我对此功能有多种需求。基本需求是我所拥有的:
- 数据库服务
- 数据库迁移服务
- 应用服务
数据库服务将启动一个空数据库。我的应用程序需要它在数据库中的架构设置,所以我有第二个服务,它将在它运行时执行此操作。完成后,该服务将成功退出 - 我可以在我的 docker compose 日志文件中看到:
webservices_kong-migration_1 以代码 0 退出
我不希望应用程序服务在在数据库迁移完成之后启动。
我的应用程序服务的 docker-compose 文件中有以下内容:
depends_on: kong-database: condition: service_healthy kong-migration: condition: service_started
我知道这是错误的,因为我可以在我的 docker-compose 日志中看到应用程序在迁移开始之后但尚未完成之前启动,导致应用程序失败。
(我一直以https://github.com/Kong/docker-kong/blob/master/compose/docker-compose.yml为例)
docker-compose 是否具有执行此操作的功能,还是我应该考虑另一种方法?
【问题讨论】:
-
我正在尝试使用开箱即用的图像,而不是构建自己的图像,这必须是可能的,因为 kong 是一个通用标准
-
我认为这是不可能的,因为 docker 应该让容器保持运行,这与我认为的目的有点冲突。如何设置一个标志以向应用程序发出迁移正在进行中的信号,并让它向用户提供“服务迁移正在进行中”错误消息?
标签: docker docker-compose