Docker在其他容器完成后编写启动容器

9lowa7mx  于 2022-11-22  发布在  Docker
关注(0)|答案(2)|浏览(146)

在Docker compose中,容器A是否可以等待容器B完成(即停止运行)后再开始?
我有3个容器在我的码头组成:

  • 容器A是MySQL数据库
  • 容器B是一个Flyway容器,在某个schema1上有一些SQL迁移。在运行迁移后,它停止。
  • 容器C是一个Flyway容器,它在某个schema2上有一些SQL迁移,并向schema1和schema2添加一些数据。它在运行迁移后也会停止。

我需要容器C等待B完成,否则迁移将失败。

eiee3dmh

eiee3dmh1#

由于这是紧急的,我最终放弃了了解某个容器是否成功结束的整个想法,我只是添加了一个restart策略来触发on-failure,这样如果迁移失败,它可以重试。
此外,由于ContainerC的迁移只是可重复的数据迁移,因此我将-baselineOnMigrate="false"添加到正在执行的Flyway命令中,这样,如果ContainerB必须执行的迁移尚未完成,C的迁移将失败,而不会污染Flyway的历史记录,因此它们可以毫无问题地重试。

mqkwyuun

mqkwyuun2#

您可以在Docker-compose中配置运行状况检查。

相关问题