我试图确保我的应用程序容器在db容器启动和READY TO接受连接之前不运行迁移/启动.
所以我决定使用healthcheck并依赖于docker compose file v2中的选项.
在应用程序中,我有以下内容
app:
...
depends_on:
db:
condition: service_healthy
Run Code Online (Sandbox Code Playgroud)
另一方面,db具有以下健康检查
db:
...
healthcheck:
test: TEST_GOES_HERE
timeout: 20s
retries: 10
Run Code Online (Sandbox Code Playgroud)
我尝试了几种方法,如:
test: ["CMD", "test -f var/lib/mysql/db"]
test: ["CMD", "echo 'SELECT version();'| mysql"]
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
有人有解决方案吗?