## Docker compose для сборки и запуска Entaxy. Запуск локального окружения с несколькими docker контейнерами: * Караф * Брокер * СУБД * Менеджер артефактов Для начала клонируем репозиторий и переходим в корень проекта: ```bash git clone cd entaxy-framework ``` Далее у нас есть разные варианты хранения необходимых для установки Entaxy артефактов. ### 1. Самый простой способ: локальный репозиторий артефактов включаеться в образ карафа. В корневом POM находится профиль для деплоя артефактов в образ карафа: ```xml docker.file.repo entaxy-maven-repo-file file:./distribution/entaxy-docker/karaf/repo ``` Запускаем мевен деплой из корня проекта с этим профилем: ```bash mvn deploy -P docker.file.repo ``` И после успешной сборки запускаем контейнеры из директории проекта, в которой находится docker-compose.yml: ```bash cd ./distribution/entaxy-docker 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 cd ./distribution/entaxy-docker docker-compose up ``` Или `docker compose up` для новых версий docker. После запуска комманды мы будем видеть прогресс сборки образов, запуска контейнеров и логи запущенных приложений. Для остановки контейнеров достаточно нажать сочетание клавиш Ctrl+C или через команды запущенные из другого окна/вкладки терминала. ```bash docker-compose stop docker-compose start ``` Для деплоя в reposilite добавляем учётные данные в конфигурацию мавена (`~/.m2/settings.xml`): ```xml entaxy-maven-repo admin aW7frfS9NPGrOnuNBMf9gyO0eXNRaCoOGtXHTcLU5akDFJ9ACiUJhgmZxlOKnLC5 ``` В корневом POM находится профиль для деплоя артефактов на сервер reposilite: ```xml docker.reposilite entaxy-maven-repo http://127.0.0.1:8081/snapshots ``` Запускаем мевен деплой из корня проекта с этим профилем: ```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`