Задать вопрос
Inkognitoss
@Inkognitoss
Full-stack разработчик.

Можно ли объявить для Docker служебный контейнер, который будет слушать определенный порт только если его не слушают другие контейнеры?

Задача следующая.
Мне очень нужно элегантно сделать страницу "сервис обслуживается" и отдавать её в тех случаях, когда контейнер с основным сервисом остановлен. При этом хотелось бы чтобы не пришлось стартовать и останавливать для этого дополнительный контейнер.

Например
"Контейнер А" - nginx, отдающий приложение.
"Контейнер Б" - nginx, который тупо отдает "maintenancepage.html".

Я бы хотел (без kubernetes) чтобы "Контейнер Б" слушал 443 и 80 порт машины в том случае, если "Контейнер А" эти порты не слушает (т.е. если "Контейнер А" лежит).

Мне почему-то кажется, что такая возможность должна быть. Поискал по доке - не нашел, решил спросить комьюнити.

Заранее спасибо!

PS. Вероятно придется на nginx-е развести всё. Например с помощью того же `upstream` https://nginx.org/ru/docs/http/ngx_http_upstream_m...
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    Инженер облачных сервисов
    2 месяца
    Далее
Решения вопроса 1
@q2digger
никого не трогаю, починяю примус
Самое простое - иметь фронтовый Nginx , который будет отрабатывать 503-й код и кидать на соответсвующую заглушку.

банальное
error_page 500 502 503 504 /sorry.html;
        location = /sorry.html {
            root /var/www/maintenance/;
        }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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