142 lines
6.6 KiB
Markdown
142 lines
6.6 KiB
Markdown
## 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`
|