После запуска приложение доступно по адресу http://localhost:3000/
Через 3 терминала, для нагляндности
- yarn start:webpack:client - запуск вебпака с дев-сервером, отвечающим за клиентскую статику
- yarn start:webpack:server - запуск вебпака, отвечающего за нодовое приложение
- yarn start:server - запуск самого сервера
- yarn build - каждый этап сборки разбит на отдельные команды.
yarn build:cleanвызываетrm -rf ./build- удаляет папку build - там старый билдyarn build:webpackзапускаетyarn build:webpack:clientи затемyarn build:webpack:serveryarn build:webpack:clientзапускаетwebpack --config webpack.prod.client.config.js- продовая сборка клиентской статикиyarn build:webpack:serverзапускаетwebpack --config webpack.prod.server.config.js- продовая сборка серверного приложения
yarn build:copyзапускает скриптcopy.sh, который копирует клиентскую статику и нодовые артефакты в папку с серверной сборкойyarn build:packagesзапускает установку пакетов в продовом режиме в папку с серверной сборкойyarn build:dockerзапускает сборку докер-образа командойdocker build -f app.Dockerfile -t tfs-demo-2-server:latest .docker build- сама команда запуска сборки-f app.Dockerfile- указывает на файл с инструкциями для сборки образа-t tfs-demo-2-server:latest- указывает на тег (название) собираемого образа.- указывает на директорию, в которой запускать сборку
- docker run --name tfs-demo --rm -d -p 3000:3000 -e NODE_ENV=production tfs-demo-2-server:latest
docker run- команда запуска контейнера--name tfs-demo- просто даём название контейнеру, чтобы можно было указывать его в командах, напримерstopилиlogs- без этого нужно будет указывать id контейнера--rm- удаляем контейнер после остановки. Если этого не указать, то после остановки контейнер будет все ещё доступен, полезно для дебага-d- запускаем контейнер как демон, то есть без привязки к текущему процессу (терминалу) и в фоне-p- проброс порта 3000 из контейнера в порт 3000 на хосте. У каждого контейнера свои порты, которые никак не связаны с портами локальной машины, с помощью этого как раз связываем порт 3000 в контейнере с портом 3000 на локальной машине - все запросы на 3000 порт на локальной машине пойдут в порт 3000 в контейнере-e NODE_ENV=productionустановит environment-переменнуюNODE_ENVв значениеproductionдля текущего запуска контейнераtfs-demo-2-server:latest- какой образ будет запущен в контейнере. Именно этот образ и собирается командойdocker build
- docker stop tfs-demo
- docker logs -f tfs-demo
-f означает вывод логов по мере их появления, без неё он просто выведет все имеющиеся на текущий момент логи и вернет Вас к терминалу