Entaxy

Docker compose для сборки и запуска Entaxy.

Запуск локального окружения с несколькими docker контейнерами:

  • Караф

  • Брокер

  • СУБД

  • Менеджер артефактов

Для начала клонируем репозиторий и переходим в корень проекта:

git clone <entaxy-framework-repository>
cd entaxy-framework

Далее у нас есть разные варианты хранения необходимых для установки Entaxy артефактов.

1. Самый простой способ: локальный репозиторий артефактов включается в образ Karaf.

В корневом POM находится профиль для деплоя артефактов в образ Karaf:

<profile>
    <id>docker.file.repo</id>
    <distributionManagement>
        <snapshotRepository>
            <id>entaxy-maven-repo-file</id>
            <url>file:./distribution/entaxy-docker/karaf/repo</url>
        </snapshotRepository>
    </distributionManagement>
</profile>

Запускаем мевен деплой из корня проекта с этим профилем:

mvn deploy -P docker.file.repo

И после успешной сборки запускаем контейнеры из директории проекта, в которой находится docker-compose.yml:

cd ./distribution/entaxy-docker
docker-compose up

Или docker compose up для новых версий docker. После запуска комманды мы будем видеть прогресс сборки образов, запуска контейнеров и логи запущенных приложений. Для остановки контейнеров достаточно нажать сочетание клавиш Ctrl+C или через команды запущенные из другого окна/вкладки терминала.

docker-compose stop
docker-compose start

После запуска контейнеров открываем новый терминал и заходим в караф:

docker-compose exec karaf /opt/apache-karaf/bin/client

или ssh клиент с дальнейшим вводом пароля (karaf)

ssh -p 8101 karaf@localhost

И в консоли карафа запускаем скрипт с установкой необходимых фич:

shell:source ./install.karaf

Ждём окончания деплоя в караф. (Не всегда полная установка проходит с первой попытки и тогда помогает повторный запуск source install.karaf)

2. Reposilite: легковесный http репозиторий артефактов запускается в отдельном контейнере.

Комментируем в файле install.karaf строку начинающуюся с:

config:property-set -p org.ops4j.pax.url.mvn org.ops4j.pax.url.mvn.repositories file:/opt/apache-karaf/repo
[source,bash]

И убираем комментарий в строке начинающейся:

#config:property-set -p org.ops4j.pax.url.mvn org.ops4j.pax.url.mvn.repositories http://maven-repo/snapshots

Запускаем контейнеры из директории проекта, в которой находится docker-compose.yml:

cd ./distribution/entaxy-docker
docker-compose up

Или docker compose up для новых версий docker. После запуска комманды мы будем видеть прогресс сборки образов, запуска контейнеров и логи запущенных приложений. Для остановки контейнеров достаточно нажать сочетание клавиш Ctrl+C или через команды запущенные из другого окна/вкладки терминала.

docker-compose stop
docker-compose start

Для деплоя в reposilite добавляем учётные данные в конфигурацию мавена (~/.m2/settings.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:

<profile>
    <id>docker.reposilite</id>
    <distributionManagement>
        <snapshotRepository>
            <id>entaxy-maven-repo</id>
            <url>http://127.0.0.1:8081/snapshots</url>
        </snapshotRepository>
    </distributionManagement>
</profile>

Запускаем мевен деплой из корня проекта с этим профилем:

mvn deploy -P docker.reposilite

После успешной сборки открываем новый терминал и заходим в караф:

docker-compose exec karaf /opt/apache-karaf/bin/client

или ssh клиент с дальнейшим вводом пароля (karaf)

ssh -p 8101 karaf@localhost

И в консоли карафа запускаем скрипт с установкой необходимых фич:

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