@novelette

Корректна ли будет такая организация Docker-контейнеров?

Всем привет! Возник вопрос публикации web-приложения (бэк + фронт) в продакшене, но с Docker'ом не сильно знаком. Можете подсказать, насколько корректна такая конфигурация контейнеров в Docker-сети? Всего 4 контейнера:
  • PostgreSQL (10.10.10.5:5432)
  • Node.js Application (10.10.10.4:3000)
  • Next.js (+ Next-Auth) (10.10.10.3:80)
  • Nginx (10.10.10.1:443)


Nginx выбран как фронт-сервер, чтобы контролировать трафик, включить SSL и роутить все запросы на Next.js-приложение. Все web-клиенты делают запрос к Nginx.

Next.js выбран, чтобы обеспечить разные виды авторизации (ВК, ФБ и т.д.) посредством Next-Auth. Это грубо говоря "бэкенд" для фронтенда. Next.js берет на себя всю заботу по авторизации и направляет запросы уже к Node.js приложению.

Node.js приложение уже реализует основную бизнес-логику. Запросы к базе, обработка данных и т.д. Это приложение не требует токенов и авторизации. Поэтому оно открыто только для Next.js.

PostgreSQL - собственно база. Думаю, правильно сделать ее в отдельном контейнере.

Подскажите, пожалуйста, где можно подробно почитать, чтобы правильно и безопасно собрать на базе Docker такую инфраструктуру? Если есть рекомендации, то пожалуйста поделитесь. Спасибо!
  • Вопрос задан
  • 456 просмотров
Пригласить эксперта
Ответы на вопрос 3
ddv88
@ddv88
Binance Futures
PostgreSQL (10.10.10.1:5432)
Node.js Application (10.10.10.1:3000)
Next.js (+ Next-Auth) (10.10.10.1:8080)
Nginx (10.10.10.1:80, 10.10.10.1:443)


В целом ход мысли правильный.
Все на одном адресе, если это один хост.

Docker'ом не сильно знаком

Так изучай. Документация УЛЬТРА подробнейшая с примерами.

https://docs.docker.com/get-started
https://docs.docker.com/compose
https://hub.docker.com/search?type=image
Ответ написан
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
СУБД в продакшене лучше не в докер. Ну или хотя бы реплику настройте с автофейловером.
Ответ написан
@rPman
Зачем ты разделяешь части приложения по доккер образам?

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

я ее пойму базу данных отделить, хотя это отдельный философский разговор, нужно ли ее в принципе в докер образ засовывать, но вот все остальное должно быть одним целым

так что ответ, хватит одного максимум двух образов
Ответ написан
Ваш ответ на вопрос

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

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