2021-09-07 11:35:07 +03:00
## Docker compose для сборки и запуска Entaxy.
Запуск локального окружения с несколькими docker контейнерами:
* Караф
* Брокер
* СУБД
* Менеджер артефактов
Для начала клонируем репозиторий и переходим в корень проекта:
```bash
git clone < entaxy-framework-repository >
cd entaxy-framework
```
Далее у нас есть разные варианты хранения необходимых для установки Entaxy артефактов.
### 1. Самый простой способ: локальный репозиторий артефактов включаеться в образ карафа.
В корневом POM находится профиль для деплоя артефактов в образ карафа:
```xml
< profile >
< id > docker.file.repo< / id >
< distributionManagement >
< snapshotRepository >
< id > entaxy-maven-repo-file< / id >
2021-09-10 22:42:19 +03:00
< url > file:./distribution/entaxy-docker/karaf/repo< / url >
2021-09-07 11:35:07 +03:00
< / snapshotRepository >
< / distributionManagement >
< / profile >
```
Запускаем мевен деплой из корня проекта с этим профилем:
```bash
mvn deploy -P docker.file.repo
```
И после успешной сборки запускаем контейнеры из директории проекта, в которой находится docker-compose.yml:
```bash
2021-09-10 22:42:19 +03:00
cd ./distribution/entaxy-docker
2021-09-07 11:35:07 +03:00
docker-compose up
```
Или `docker compose up` для новых версий docker.
После запуска комманды мы будем видеть прогресс сборки образов, запуска контейнеров и логи запущенных приложений. Для остановки контейнеров достаточно нажать сочетание клавиш Ctrl+C или через команды запущенные из другого окна/вкладки терминала.
```bash
docker-compose stop
docker-compose start
```
После запуска контейнеров открываем новый терминал и заходим в караф:
```bash
docker-compose exec karaf /opt/apache-karaf/bin/client
```
или ssh клиент с дальнейшим вводом пароля (karaf)
```bash
ssh -p 8101 karaf@localhost
```
И в консоли карафа запускаем скрипт с установкой необходимых фич:
```bash
shell:source ./install.karaf
```
Ждём окончания деплоя в караф.
(Н е всегда полная установка проходит с первой попытки и тогда помогает повторный запуск `source install.karaf` )
### 2. Reposilite: легковесный http репозиторий артефактов запускается в отдельном контейнере.
Комментируем в файле install.karaf строку начинающуюся с :
```bash
config:property-set -p org.ops4j.pax.url.mvn org.ops4j.pax.url.mvn.repositories file:/opt/apache-karaf/repo
```
И убираем комментарий в строке начинающейся:
```bash
#config:property-set -p org.ops4j.pax.url.mvn org.ops4j.pax.url.mvn.repositories http://maven-repo/snapshots
```
Запускаем контейнеры из директории проекта, в которой находится docker-compose.yml:
```bash
2021-09-10 22:42:19 +03:00
cd ./distribution/entaxy-docker
2021-09-07 11:35:07 +03:00
docker-compose up
```
Или `docker compose up` для новых версий docker.
После запуска комманды мы будем видеть прогресс сборки образов, запуска контейнеров и логи запущенных приложений. Для остановки контейнеров достаточно нажать сочетание клавиш Ctrl+C или через команды запущенные из другого окна/вкладки терминала.
```bash
docker-compose stop
docker-compose start
```
Для деплоя в reposilite добавляем учётные данные в конфигурацию мавена (`~/.m2/settings.xml`):
```xml
< settings xmlns = "http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
< servers >
< server >
< id > entaxy-maven-repo< / id >
< username > admin< / username >
< password > aW7frfS9NPGrOnuNBMf9gyO0eXNRaCoOGtXHTcLU5akDFJ9ACiUJhgmZxlOKnLC5< / password >
< / server >
< / servers >
< / settings >
```
В корневом POM находится профиль для деплоя артефактов на сервер reposilite:
```xml
< profile >
< id > docker.reposilite< / id >
< distributionManagement >
< snapshotRepository >
< id > entaxy-maven-repo< / id >
< url > http://127.0.0.1:8081/snapshots< / url >
< / snapshotRepository >
< / distributionManagement >
< / profile >
```
Запускаем мевен деплой из корня проекта с этим профилем:
```bash
mvn deploy -P docker.reposilite
```
После успешной сборки открываем новый терминал и заходим в караф:
```bash
docker-compose exec karaf /opt/apache-karaf/bin/client
```
или ssh клиент с дальнейшим вводом пароля (karaf)
```bash
ssh -p 8101 karaf@localhost
```
И в консоли карафа запускаем скрипт с установкой необходимых фич:
```bash
shell:source ./install.karaf
```
Ждём окончания деплоя в караф.
(Н е всегда полная установка проходит с первой попытки и тогда помогает повторный запуск `source install.karaf` )
Также есть вариант с nexus
После старта получаем пароль для admin через команду:
`docker-compose exec nexus cat /nexus-data/admin.password` .
Через админку нужно разрешить анонимный деплой или настроить доступы.
Урл для install.karaf
`http://nexus:8081/repository/maven-snapshots/@id=local-nexus@snapshots@noreleases`
Остановить все контейнеры
`docker-compose down`
Остановить и удалить хранилища с БД и репой
`docker-compose down -v`