• Как собирать docker образ?

    @Spoki4 Автор вопроса
    Разница между dev и prod в том что в дев я использую для отдачи webpack-dev-server(запуская в контейнере только команду `npm start`), а в прод для отдачи я буду использовать nginx(предварительно собрав frontend и запаковать его в образ к nginx).
    Если смотреть по сервисам то в dev: backend и frontend(webpack-dev-server).
    В prod: backend и nginx(собранный frontend)
  • Как собирать docker образ?

    @Spoki4 Автор вопроса
    Я сейчас размышляю как правильно сделать отдачу статики, как варианты есть nginx, пусть отдает статику. Но тут же возникает проблема. У меня backend используется только для API запросов. Либо есть вариант как сделано сейчас(приходится ручками собирать) делаю билд для frontend и для backend и копирую frontend/build в backend/build/static. О SSR речи не идет. Только отдача статики.

    Есть такой вариант мы делаем backend только как API сервер, а frontend отдаем nginx'ом. Тогда вопрос как правильно паковать в докер nginx и статику.

    Для development'a собираюсь использовать другой docker-compose конфиг, в котором nginx будет пропускаться и frontend будет отдаваться с помощью webpack-dev-server. Через docker-compose линкуем порты frontend и backend чтобы могли взаимодействовать.

    Для production собираюсь создавать два образа докер с nginx+статика и backend отдельно. И так же линковать порты.

    С nginx вариант мне нравится больше. Можно если что запустить больше одного инстанса backend и балансировать нагрузку.

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

    Эта вся схема будет использоваться на CI(gitlab-ci) сервере с прогонами тестов и прочим. Там же будут и собираться образы. Хранится образы будут в gitlab-registry.

    Правильно ли я мыслю? Хотелось бы чтобы можно было развернуть как production так и development режимы на локальной машине одной командой с указанием конфига docker-compose. Как это правильно сделать?