我想通过docker-compose部署微服务,这取决于其他容器和数据库的迁移。到目前为止,我们一直使用由GoCD控制的docker run命令。这确实工作得很好,但是已经到了环境范围变得难以管理的地步。
因此,我们想使用docker-compose定义服务。
流程基本上是这样的:
检查数据库是否准备就绪似乎很容易。只需使Flyway依赖Postgres容器并检查端口是否正在运行即可。或更精细地检查是否创建了数据库(pg_isready)。 我还可以想象合并不同的docker-compose.yml文件时部署多个环境。
但是后来我遇到了障碍。如何检查Flyway迁移是否成功?我可以执行一个shell命令,并检查是否已创建表。但这似乎不是很优雅。
此外,我将如何再次运行Flyway来进行另一次数据库迁移,但又不会碰到正在运行的容器。只需在不依赖容器的情况下重新启动flyway(docker-compose -f docker-compose-infrastructure.yml -f docker-compose-services.yml up --no-deps -d boxfuse / flyway)?
使用docker-compose甚至是一个好方案吗?某种程度上,我有种感觉,我正在扭曲docker-compose来做它不适合做的事情,这通常意味着您做错了...