【发布时间】:2018-07-05 19:03:59
【问题描述】:
我有一个经典的 PHP 7 / MySQL / Nginx API 我想 dockerise
事情是当我运行我的 docker compose 时,应用程序在 db 准备好之前启动,所以它失败了:
version: '3.3'
services:
db:
image: mysql:5.7
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: jaumo
MYSQL_USER: root
MYSQL_PASSWORD: password
app:
image: repo/myimage
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: mydb
MYSQL_USER: root
MYSQL_PASSWORD: password
ports:
- 8000:80
depends_on:
- "db"
volumes:
db_data:
official doc 声明:
depends_on 在启动 web 之前不会等待 db 和 redis “准备好” - 仅在它们启动之前。如果您需要等待服务准备好,请参阅控制启动顺序以了解有关此问题的更多信息以及解决该问题的策略。
版本 3 不再支持depends_on 的条件形式。
所以基本上,在第 2 版中,我可以添加健康检查条件,这很容易,但现在,我不知道该怎么做,文档也没有提供任何替换方法。
我该怎么办?这是一个很常见的情况......
【问题讨论】:
-
您是否尝试过在 YML 文件中始终使用相同的缩进?
标签: docker docker-compose