Всем привет! Возник вопрос публикации 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 такую инфраструктуру? Если есть рекомендации, то пожалуйста поделитесь. Спасибо!