Как правильно развернуть окружение через Docker?

Дорбого времени суток! Собственно возник такой вопрос. Разрабатывается приложение, у которого фронт на Node.JS, и к нему бэкэнд API на PHP. Необходимо разметстить фронт на домене test-domain.com, а API на api.test-domain.com.
Для PHP требуется php-fpm. Как лучше сделать? Запустить в контейнере nginx с php-fpm, и расшарить контейнер с node и php? Или есть более подходящий вариант?
  • Вопрос задан
  • 3523 просмотра
Пригласить эксперта
Ответы на вопрос 4
nazarpc
@nazarpc
Open Source enthusiast
Всё отдельно - Nginx, php-fpm, Node.js. Каждый контейнер имеет свой публичный API, в данном случае это порт, на котором он слушает. Потом контейнеры общаются между собой, к примеру, Nginx перенаправляет запросы на php-fpm или Node.js если нужно.
Ответ написан
vitalaw
@vitalaw
PHP-разработчик
Очень рекомендую почитать blog.osteel.me/posts/2015/12/18/from-vagrant-to-do... В статье подробно все расписано именно по вашему вопросу
Ответ написан
hamnsk
@hamnsk
Системный администратор, Linux/Windows
Возникает вопрос, зачем такие городушки? Лично у меня при подобной связке возникли проблемы, контейнер можно прилинковать лишь однажды к другому контейнеру, это когда я делал свзяку Nginx+PHP-FPM+MariaDB в результате когда я хотел контейнер с апачем подвешать к той же Maria наступил на грабли, линковаться контейнеры не хотели, хранилище у них конечно была замаплена папка, но на новую БД которая видна через апача пришлось поднять пару новых контейнеров, отсюда памяти я скушал побольше, с учетом VPS хостинга это не экономно к ресурсам. В результате все склонилось к тому, что на DEV окружении докер был убит раз и навсегда, единственный плюс вижу в нем когда на физически одном DEV сервере сидит не один разработчик и у них разные прокеты, тогда логичней все окружение загнать в один контейнер для конкретного разраба, и не плодить зоопарк из контейнеров.
Ответ написан
PQR
@PQR
Ставьте на голый сервер без докера - и nginx и node и php-fpm - всё на один сервер. Пусть nginx проксирует либо на php-fpm, либо на node.js в зависимости от имени хоста на который пришел запрос.

Если очень хочется докер - делайте один контейнер а внутрь nginx+node+php-fpm (зато с докером, модно!)
Ответ написан
Ваш ответ на вопрос

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

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