c0aa78d156
Completely removed usage of the RabbitMQ. Queue now based on Redis channels. Worker process now extracted as separate docker container. Base image upgraded to the 1.8.0 version (PHP 7.2.7 and pcntl extension). |
||
---|---|---|
api | ||
common | ||
console | ||
data | ||
docker | ||
tests | ||
.dockerignore | ||
.env-dist | ||
.gitignore | ||
.gitlab-ci.yml | ||
.php_cs.dist | ||
autocompletion.php | ||
composer.json | ||
composer.lock | ||
docker-compose.dev.yml | ||
docker-compose.prod.yml | ||
Dockerfile | ||
Dockerfile-dev | ||
README.md | ||
yii |
Accounts Ely.by
Развёртывание dev [backend]
Предварительно нужно установить git, docker и его docker-compose.
За тем нужно установить, настроить и запустить nginx-proxy контейнер. Это делается один раз в рамках системы и в дальнейшем используется и для других проектов.
Также необходимо иметь доступ к registry.ely.by
. Для этого выполнить команду docker login registry.ely.by
,
ввести свой логин и пароль. Если доступа нету, то нужно его попросить у кого-нибудь, кто может его выдать.
За тем сливаем репозиторий:
git clone git@gitlab.ely.by:elyby/accounts.git account.ely.by
cd account.ely.by
Далее нужно создать .env
, docker-compose.yml
и id_rsa
файлы:
cp .env-dist .env
cp docker-compose.dev.yml docker-compose.yml
cp ~/.ssh/id_rsa id_rsa # Использовать ссылку нельзя
Касательно файла id_rsa: часть зависимостей находятся в наших приватных репозиториях, получить доступ куда можно только в том случае, если в контейнере окажется ключ, который имеет доступ к этим репозиториям.
Все вышеперечисленные файлы находятся под gitignore, так что с конечными файлами можно произвести
все необходимые манипуляции под конкретную задачу разработки. В файле .env
обязательно следует
задать JWT_USER_SECRET
, иначе авторизация на бекенде не заработает.
После этого просто выполняем старт всех контейнеров:
docker-compose up -d
Контейнеры автоматически сбилдятся и начнут свою работу.
Развёртывание dev [frontend]
Чтобы поднять сборку frontend приложения, необходимо иметь установленный в системе Node.js
версии 5.x или 6.x, а так же npm 3-ей версии (npm i -g npm
для обновления).
За тем переходим в папку frontend
и устанавливаем зависимости:
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.
Как влезть в работающий контейнер
Начиная с версии docker-compose 1.9.0, появилась команда docker-compose exec
, которая позволяет выполнить
на работающем контейнере произвольную команду, основываясь на имени сервиса в compose файле.
docker-compose exec app bash
// Старый вариант
Сперва, с помощью команды docker ps
мы увидим все запущенные контейнеры. Нас интересуют значения
из первой колонки CONTAINER ID или NAMES. Узнать, чему они соответствуют можно прочитав название IMAGE
из 2 колонки. Чтобы выполнить команду внутри работабщего контейнера, нужно выполнить:
docker exec -it accountelyby_app_1 bash
Где accountelyby_app_1
- одно из значений CONTAINER ID или NAMES. Для выхода из контейнера
используем exit
.