2016-10-02 03:50:40 +05:30
|
|
|
|
# Accounts Ely.by
|
2016-01-02 19:13:18 +05:30
|
|
|
|
|
2016-11-24 00:19:56 +05:30
|
|
|
|
## Развёртывание dev [backend]
|
2016-01-02 19:13:18 +05:30
|
|
|
|
|
2016-05-10 04:19:50 +05:30
|
|
|
|
Предварительно нужно установить [git](https://git-scm.com/downloads),
|
|
|
|
|
[docker](https://docs.docker.com/engine/installation/) и его
|
|
|
|
|
[docker-compose](https://docs.docker.com/compose/install/).
|
2016-01-02 19:13:18 +05:30
|
|
|
|
|
2016-08-09 12:23:05 +05:30
|
|
|
|
За тем нужно установить, настроить и запустить [nginx-proxy](https://gitlab.com/elyby/nginx-proxy)
|
2016-10-02 03:50:40 +05:30
|
|
|
|
контейнер. Это делается один раз в рамках системы и в дальнейшем используется и для других проектов.
|
|
|
|
|
|
2016-08-09 12:23:05 +05:30
|
|
|
|
Также необходимо иметь доступ к `registry.ely.by`. Для этого выполнить команду `docker login registry.ely.by`,
|
|
|
|
|
ввести свой логин и пароль. Если доступа нету, то нужно его попросить у кого-нибудь, кто может его выдать.
|
|
|
|
|
|
2016-10-02 03:50:40 +05:30
|
|
|
|
За тем сливаем репозиторий:
|
2016-01-02 19:13:18 +05:30
|
|
|
|
|
2016-05-10 04:19:50 +05:30
|
|
|
|
```sh
|
2016-11-24 00:19:56 +05:30
|
|
|
|
git clone git@gitlab.ely.by:elyby/accounts.git account.ely.by
|
|
|
|
|
cd account.ely.by
|
2016-05-10 04:19:50 +05:30
|
|
|
|
```
|
|
|
|
|
|
2016-10-02 03:50:40 +05:30
|
|
|
|
Далее нужно создать `.env`, `docker-compose.yml` и `id_rsa` файлы:
|
2016-05-10 04:19:50 +05:30
|
|
|
|
|
|
|
|
|
```sh
|
2016-10-02 03:50:40 +05:30
|
|
|
|
cp .env-dist .env
|
|
|
|
|
cp docker-compose.dev.yml docker-compose.yml
|
|
|
|
|
cp ~/.ssh/id_rsa id_rsa # Использовать ссылку нельзя
|
2016-05-10 04:19:50 +05:30
|
|
|
|
```
|
|
|
|
|
|
2016-11-24 00:19:56 +05:30
|
|
|
|
**Касательно файла id_rsa**: часть зависимостей находятся в наших приватных репозиториях, получить
|
2016-10-02 03:50:40 +05:30
|
|
|
|
доступ куда можно только в том случае, если в контейнере окажется ключ, который имеет доступ к этим
|
|
|
|
|
репозиториям.
|
2016-05-10 04:19:50 +05:30
|
|
|
|
|
2016-11-24 00:19:56 +05:30
|
|
|
|
Все вышеперечисленные файлы находятся под gitignore, так что с конечными файлами можно произвести
|
|
|
|
|
все необходимые манипуляции под конкретную задачу разработки. **В файле `.env` обязательно следует
|
2016-10-02 03:50:40 +05:30
|
|
|
|
задать `JWT_USER_SECRET`, иначе авторизация на бекенде не заработает.**
|
2016-05-10 04:19:50 +05:30
|
|
|
|
|
2016-10-02 03:50:40 +05:30
|
|
|
|
После этого просто выполняем старт всех контейнеров:
|
2016-05-10 04:19:50 +05:30
|
|
|
|
|
2016-10-02 03:50:40 +05:30
|
|
|
|
```sh
|
|
|
|
|
docker-compose up -d
|
2016-05-10 04:19:50 +05:30
|
|
|
|
```
|
|
|
|
|
|
2016-11-24 00:19:56 +05:30
|
|
|
|
Контейнеры автоматически сбилдятся и начнут свою работу.
|
|
|
|
|
|
|
|
|
|
## Развёртывание dev [frontend]
|
|
|
|
|
|
|
|
|
|
Чтобы поднять сборку frontend приложения, необходимо иметь установленный в системе [Node.js](https://nodejs.org)
|
|
|
|
|
версии 5.x или 6.x, а так же npm 3-ей версии (`npm i -g npm` для обновления).
|
|
|
|
|
|
|
|
|
|
За тем переходим в папку `frontend` и устанавливаем зависимости:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
cd frontend
|
|
|
|
|
npm i
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
После того, как все зависимости будут установлены, можно поднять dev-сервер. Здесь есть 2 пути: можно, следуя
|
|
|
|
|
инструкции выше, поднять backend на своей машине через Docker. Если же разработка не привязывается к специфичной
|
|
|
|
|
версии backend, то более быстрым и удобным способ будет использовать наш dev-сервер, расположенный под адресу
|
|
|
|
|
https://dev.account.ely.by.
|
|
|
|
|
|
|
|
|
|
В любом из случаев необходимо в папке `frontend/config` скопировать файл `template.env.js` в `env.js` (находится
|
|
|
|
|
под .gitignore) и указать в параметре `apiHost` или свой локальный сервер (тот хост, что был указан в .env
|
|
|
|
|
как `VIRTUAL_HOST`), или указав просто `https://dev.account.ely.by`.
|
|
|
|
|
|
|
|
|
|
После того, как это будет сделано, запускаем dev-сервер (находясь в папке frontend):
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
npm start
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
dev-сервер поднимется на 8080 порту и будет доступен по адресу http://localhost:8080.
|
2016-05-10 04:19:50 +05:30
|
|
|
|
|
2016-10-02 03:50:40 +05:30
|
|
|
|
### Как влезть в работающий контейнер
|
2016-01-02 19:13:18 +05:30
|
|
|
|
|
2016-11-24 00:19:56 +05:30
|
|
|
|
Начиная с версии docker-compose 1.9.0, появилась команда `docker-compose exec`, которая позволяет выполнить
|
|
|
|
|
на работающем контейнере произвольную команду, основываясь на имени сервиса в compose файле.
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docker-compose exec app bash
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
------------------------
|
|
|
|
|
|
|
|
|
|
_// Старый вариант_
|
|
|
|
|
|
2016-10-02 03:50:40 +05:30
|
|
|
|
Сперва, с помощью команды `docker ps` мы увидим все запущенные контейнеры. Нас интересуют значения
|
|
|
|
|
из первой колонки CONTAINER ID или NAMES. Узнать, чему они соответствуют можно прочитав название IMAGE
|
|
|
|
|
из 2 колонки. Чтобы выполнить команду внутри работабщего контейнера, нужно выполнить:
|
2016-01-02 19:13:18 +05:30
|
|
|
|
|
|
|
|
|
```
|
2016-10-02 03:50:40 +05:30
|
|
|
|
docker exec -it accountelyby_app_1 bash
|
2016-05-10 04:19:50 +05:30
|
|
|
|
```
|
|
|
|
|
|
2016-10-02 03:50:40 +05:30
|
|
|
|
Где `accountelyby_app_1` - одно из значений CONTAINER ID или NAMES. Для выхода из контейнера
|
|
|
|
|
используем `exit`.
|