twix007
@twix007

Ка запускать контейнеры Docker по очерёдности?

Как заставить запускаться Docker compose контейнерам после перезагрузки системы в нужной мне очерёдности?
а то они как хотят запускаются и не работают....
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 3
depends_on инструкция в сервисе указывает, от каких других сервисов зависит этот – соотв. запустится только после них.

version: "3.7"
services:
  web:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres
Ответ написан
OnYourLips
@OnYourLips
https://github.com/vishnubob/wait-for-it
для связанных между собой контейнеров

Если они в разных проектах. то внешний скрипт или манифест.
Ответ написан
gecube
@gecube
системный администратор, программист... все дела..
Вопрос очень сложный. Скорее всего, если Вы хотите зависимость по порядку запуска - Вы что-то делаете не так.
Принципиально вариантов три
1. использовать костыли вроде wait-for-it.sh - которые будут держать контейнер в состоянии запущен, но сервис внутри не стартанул, пока зависимость не стартанет.
2. Вообще плюнуть на зависимости. Ну, рестартуется зависимый сервис - раз на пятый, когда зависимость стартанет, запустится. Лишь бы правильно перезапуск был сделан. Но это может быть неприемлемо, если в докере что-то тяжёлое, вроде джава машины, которая долго прогревается.
3. Использоваться внешние решения. Начиная от "давайте не будет использовать restart: always в докере и засунем docker-compose up в systemd юнит" и кончая скриптами или оркестраторами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы