Задать вопрос
@dmitri_kotov_PhD

Контейнер rabbitmq docker стартует раньше чем сервис nginx. Как указать согласованность запуска?

Всем доброго дня!
Помогите пожалуйста, добрые люди. Как указать согласованность запуска контейнера docker строго после запуска сервиса nginx, установленного на хосте?

Дано:
- есть nginx, он запускается в виде сервиса на хосте
- в nginx подключен модуль Nemesida WAF, который обращается к RabbitMQ сразу при запуске nginx.
- после перезапуска машины, в логах не красивая картина, много сообщений "Nemesida WAF: unable to connect to the RabbitMQ". Сервис nginx запускается раньше, а rabbitmq к этому моменту ещё не успевает запуститься. Отсюда эти сообщения.

Пробовал прописать строку "Before=nginx.service" в блоке [Unit] в файле rabbitmq-server.service. Эффекта нет.
Учитывая, что эта настройка - она для контейнера, то контейнер docker просто не увидит nginx.service при запуске, потому что nginx.service установлен на хосте.
Если бы nginx был тоже в контейнере, тогда очерёдность запуска легко решалась бы при помощи docker-compose, но у нас nginx на хосте, и это продакшен.

Помогите, пожалуйста, решить вопрос: как заставить контейнер rabbitmq запускаться строго ДО старта сервиса nginx, установленного не в docker?
  • Вопрос задан
  • 84 просмотра
Подписаться 2 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    DevOps для эксплуатации и разработки
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Zerg89
Насколько помню если нужно согласовать несколько контейееров то это docker-compose
И в нем должно быть что-то типа такого
celery:
   depends_on:
     - rabbitmq # старт после старта контейнера rabbitmq
   command: sh -c './wait-for host:5432 -- cmd' # ожидаем
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы