npm run bootstrap
. Что она делает:27017
начинает проксировать запросы на локальный для контейнера порт 27107
командой docker run --name mongo -v $(pwd)/mongo/data:/data/db -p 27017:27017 -d mongo
. Это означает, что по localhost:27017
вы теперь имеете доступ к базе данных.webpack --watch
в директории клиента, который собирает dist
и начинает слушать изменения файлов. В случае, если он ловит эти изменения, дёргается пересборка и собирается новый dist
.nodemon
(из-под ts-node
) для сервера, который также следит за изменениями в серверной части и перезапускает интерпретацию при найденных изменениях. Сервер слушает 3000
сокет, по индексу (/
) отдаёт то, что собралось вебпаком в папке dist
клиента. По различным ручкам, типа localhost:3000/api/v1/users
отдаёт то, что мы описываем.docker run -d --name nginx -p 8080:80 -v $(pwd)/web/src:/var/www -v $(pwd)/nginx/nginx.conf:/etc/nginx/nginx.conf --link server:server nginx
/ping
для создания правильного мнения о том, живой ли инстанс.exit(130)
из-за https://github.com/remy/nodemon/issues/1390
, на проде не отразится, но некрасиво выглядит в деве(enoent ENOENT: no such file or directory, open '.../package.json'
появляются из-за того, что после создания симлинок в node_modules на локальный для проекта src, npm думает, что они - нормальные модули, и начинает рекурсивно их обходить в поисках декларации зависимостей из package.json. Отказываться от симлинок не хочется, а решения, кроме как фильтровать stdout, я пока не придумал; мешает не сильно, и так сойдёт.