entaxy-public/distribution/entaxy-docker/ReadMe.md

142 lines
6.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 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>
<url>file:./distribution/entaxy-docker/karaf/repo</url>
</snapshotRepository>
</distributionManagement>
</profile>
```
Запускаем мевен деплой из корня проекта с этим профилем:
```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
<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`