У нам это выглядит так:
Когда в git на ветку мастер назначают тег, происходит запуск сборки docker image.
Сперва собирается фронт
npm run build:react
"build:react": "NODE_ENV=production $(npm bin)/webpack --config webpack.react.js --progress --profile"
Потом идут команды `npm run lint && npm run test`
Затем уже идет сборка docker image, в котором устанавливаем только пакеты нужные для node.js и в конце добавляем полученную папку `dist/*`.
Далее по клику на кнопку происходит обновление сервисов (у нас GitLab)