Контейнеры угловых приложений Docker, размещенные на контейнере Nginx

План А

  1. Создание образа докера для каждого приложения Angular
  2. Использование образа докера независимо, вероятно, в отдельном контейнере для каждого углового приложения
  3. Один контейнер Nginx, который будет содержать все подключаемые контейнеры

Итак, шаги 1 и 2 и прямолинейны, однако, часть сделать контейнеры подключаемыми к Nginx мне не очень понятна. Мой основной план - сделать каждое приложение отдельным сервисом, чтобы при внесении изменений я мог перезапустить целевой сервис, а не всю платформу.

Есть идеи, как сделать контейнеры подключаемыми или какой-то другой подход?

План б

Однако, чтобы все приложения были размещены в отдельном томе, например vol-ngapp1,vol-ngapp2, подключенном к контейнеру Nginx, как бы мне выполнить процедуру обновления таким образом? - Нужно ли перезапустить весь контейнер или как?

Нужен план C:) или что-то до Z:D.

Благодарю.

1 ответ

Решение

План А '

  1. Создайте образ докера для каждого приложения Angular, обслуживаемого собственным nginx
  2. Запустите их все в одной сети
  3. В той же сети запустите контейнер nginx N в качестве обратного прокси
  4. Чтобы обновить, после запуска новых сервисов, просто отредактируйте файл conf в N и горячая перезагрузка

В этом решении используется более одного nginx, но я думаю, что это самое подключаемое и масштабируемое решение.

На шаге 3 nginx может быть заменен другими обратными прокси-серверами (например, traefik) с улучшенной возможностью обнаружения служб, поэтому вам не нужно редактировать файл конфигурации вручную.

План B не такой подключаемый, как A', потому что если у вас есть новое приложение в сети, вы не можете подключить том к работающему контейнеру без простоя. Но вам будет хорошо, если вы просто захотите обновить существующий проект (просто отредактируйте громкость).

Другие вопросы по тегам