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...
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
@q2digger
никого не трогаю, починяю примус
Самое простое - иметь фронтовый Nginx , который будет отрабатывать 503-й код и кидать на соответсвующую заглушку.

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

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

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