Docker Compose обладает целым рядом нетривиальных способов применения, которые мы рассмотрим в этой заметке. Это очередной [перевод статьи][1], которую мы разбирали при подготовке материалов нашего курса Python для Web-разработки.
![][2]
Docker Compose запускает контейнеры в порядке зависимостей, используя опцию depends\_on, чтобы указывать, когда запускается сервис. Для определения порядка запуска Compose применяет depends\_on, links, volumes\_from и network\_mode: «service: ...».
Если контейнер должен дождаться состояния “ready” другого контейнера, можно использовать инструменты wait-for-it или dockerize. Они будут проверять хосты и порты до тех пор, пока TCP соединение не будет подтверждено. Для включения принудительного ожидания в композицию необходимо добавить entrypoint:
version: '2'
services:
web:
build: .
ports:
- "80:8000"
depends_on:
- db
entrypoint: "./wait-for-it.sh db:5432"
db:
image: postgres
Вы всегда можете самостоятельно написать скрипт-обёртку, если возникнет необходимость в усилении контроля.
[Читать дальше →][3]
[1]:
https://runnable.com/docker/advanced-docker-compose-configuration
[2]:
https://habrastorage.org/web/a01/63c/2ec/a0163c2ec6a4452c8956b940f4365c0d.png
[3]:
https://habrahabr.ru/post/337688/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut