/Learning_MEAN

Знакомлюсь с новым стэком MEAN

Primary LanguageJavaScript

#REQUIREMENTS

##Development

  • nodejs
  • grunt-cli (npm install -g grunt-cli)
  • bower (npm install -g bower)

##Production

  • docker

#Описание проекта

##Backend Серверная часть организована в виде отдельных компонент. Каждая из компонент представляет собой docker-образ. Узлы nginx предназначены для отдачи статики и проксирования самого nodejs приложения. В узлах nodejs развернуто само приложение. В узлах mongodb и postgresql развернуты базы данных mongdb и postgresql соответственно.

###nginx Образ собирается из Dockerfile. Файл с конфигурацией nginx.conf копируется непостредственно в образ, а конфиги из папки sites-enabled монтируются в папку /etc/nginx/sites-enabled в сам контейнер. Makefile содержит команды:

  • build: запускает сборку образа из Dockerfile
  • run: запускает контейнер из собранного образа и монтирует все необходимые директории
  • stop: останавливает запущенный контейнер
  • start: запускает контейнер
  • reload_nginx: перезапускает nginx внутри работающего контейнера
  • clear: удаляет контейнер и образ

###nodejs Образ собирается из Dockerfile. Содержит NodeJS версии 6.x и pm2. При запуске контейнера монтируются папки dist/backend -> /srv/node/app и components/nodejs/comands -> /srv/node/comands. Makefile содержит команды:

  • build: запускает сборку образа из Dockerfile
  • run: запускает контейнер из собранного образа и монтирует все необходимые директории
  • stop: останавливает запущенный контейнер
  • start: запускает контейнер
  • restart_app: перезапускает nodejs приложение внутри контейнера
  • start_app: запускает nodejs приложение внутри контейнера
  • clear: удаляет контейнер и образ
  • install: устанавливает nodejs пакеты переданные как pkg=<имя_пакета> внутри контейнера. Если параметр pkg не передан устнавливает пакеты перечисленные в package.json
  • uninstall: удвляет nodejs пакеты переданные как pkg=<имя_пакета> внутри контейнера

###mongodb