У меня есть классический PHP 7 / MySQL / Nginx API, который я хочу докеризировать
Дело в том, что, когда я запускаю свою докерскую композицию, приложение запускается до того, как БД будет готова, поэтому оно не будет работать:
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:
Официальный документ гласит:
disabled_on не ждет, пока db и redis будут «готовы» перед запуском web - только до тех пор, пока они не будут запущены. Если вам нужно дождаться готовности службы, см. Раздел «Управление порядком запуска» для получения дополнительной информации об этой проблеме и стратегиях ее решения.
Версия 3 больше не поддерживает форму условия depen_on.
Так что, в принципе, в версии 2 я мог бы добавить условие проверки хита, это было довольно легко, но сейчас я не знаю, как это сделать, и документы не дают никакого метода замены.
Как мне поступить? Это довольно распространенный случай ...