Порядок запуска в Docker
Порядок запуска заставляет один сервис стартовать раньше другого и не ждет, пока первый станет готов. Compose лишь сдвигает момент создания контейнера. Программа внутри может ещё не принимать запросы.
Сервис db и сервис
web оба на alpine
и держатся командой сна.
У web указано, что
db должен появиться
раньше в очереди старта:
services:
db:
image: alpine
command: ["sleep", "300"]
web:
image: alpine
command: ["sleep", "300"]
depends_on:
- db
В списке после подъёма
видны работающие db
и web.
Правило касается только
очереди запуска процессов,
а не готовности программы
к работе или ответам по сети.
Оба сервиса поднимают
в фоне так:
docker compose up -d
Пусть сервис cache стартует раньше сервиса app.
Поднимите оба и напишите, ждет ли второй, пока первый начнет отвечать.