相关疑难解决方法(0)

Docker-compose检查mysql连接是否准备就绪

我试图确保我的应用程序容器在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)

我尝试了几种方法,如:

  1. 确保创建db DIR test: ["CMD", "test -f var/lib/mysql/db"]
  2. 获取mysql版本: test: ["CMD", "echo 'SELECT version();'| mysql"]
  3. Ping管理员(将数据库容器标记为健康,但似乎不是有效的测试) test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]

有人有解决方案吗?

mysql docker dockerfile docker-compose

60
推荐指数
13
解决办法
4万
查看次数

标签 统计

docker ×1

docker-compose ×1

dockerfile ×1

mysql ×1