如何在 docker-compose.yml 中开始测试之前等待数据库迁移完成

问题描述 投票:0回答:2

在 docker-compose.yml 文件中,我有 3 个服务。第一个服务用于启动 MySQL 数据库。第二个服务用于运行多个数据库迁移,以在第一个服务中创建的 MySQL 数据库中创建表和种子数据。第三个服务用于运行一些需要MySQL数据库的node.js单元测试。问题是我需要在数据库迁移完成后才开始单元测试。但我无法知道这一点。

我尝试在单元测试服务中使用depends_on配置选项来使其依赖于数据库迁移服务,但根据Docker文档,depends_on仅保证单元测试服务在数据库迁移服务启动后启动。

unit-testing docker database-migration
2个回答
0
投票

depends_on选项仅允许您控制启动顺序。
为了检查“准备就绪”,您必须以编程方式进行检查。您可以编写一个包装器脚本来检查迁移是否完成,也可以使用现有工具,例如 wait-for-it 您可以在

官方文档

找到更多信息


0
投票

depends_on: migration_service: condition: service_completed_successfully

https://docs.docker.com/compose/how-tos/startup-order/

© www.soinside.com 2019 - 2024. All rights reserved.