Сначала вы должны сообщить docker-compose
, что хотите, чтобы все контейнеры прекратили выполнение при выходе из вашего основного сервиса. Это делается с помощью --abort-on-container-exit
аргумента командной строки. Скажем, если у вас есть 2 услуги:
докер-compose.yml
version: '3'
services:
db:
...
flask:
...
тогда командная строка будет выглядеть примерно так:
docker-compose up --exit-code-from flask --abort-on-container-exit
Таким образом, сообщение о том, что ваша служба flask
является основной, и вы не хотите продолжать работу после ее выхода.
Во-вторых, вы настраиваете основной процесс flask
(PID 1
) на выход (предпочтительно с ненулевым кодом выхода), если ему не удается подключиться к базе данных. Вот и все.