Установка Entaxy в Docker и создание образа
В этом руководстве представлена пошаговая инструкция по установке Entaxy ION в Docker и созданию Docker образа для удобного развертывания Entaxy в контейнеризированной среде.
В инструкции приведены примеры для версии Entaxy ION 1.10.0, убедитесь, что вы используете актуальную версию. |
Подготовка и установка Entaxy
-
Скачайте архив Entaxy ION с официального сайта (https://entaxy.ru/download) или по прямой ссылке и распакуйте скачанный архив Entaxy в директорию
/opt
, используя следующие команды:wget https://nexus.entaxy.ru/nexus/repository/entaxy-public/ru/entaxy/ion/distribution/entaxy-ion-assembly-compact/1.10.0/entaxy-ion-assembly-compact-1.10.0-binaries.zip mv entaxy-ion-assembly-compact-1.10.0-binaries.zip /opt unzip entaxy-ion-assembly-compact-1.10.0-binaries.zip
-
Переименуйте директорию
entaxy-ion-assembly-compact-1.10.0
вapache-karaf-4.2.9
:mv /opt/entaxy-ion-assembly-compact-1.10.0 /opt/apache-karaf-4.2.9
-
Установите Java 11, требующуюся для работы Entaxy ION и укажите переменные среды
JAVA_HOME
иPATH
:sudo mkdir /opt/java11 sudo tar xvf ./axiomjdk-jdk-pro11.0.19+7-linux-amd64.tar.gz --directory /opt/java11/ echo 'export JAVA_HOME=/opt/java11/jdk-pro-11.0.19' >> ~/.bashrc echo 'export PATH=${JAVA_HOME}/bin:${PATH}' >> ~/.bashrc source ~/.bashrc
-
Перейдите в каталог с распакованным Entaxy:
cd /opt/apache-karaf-4.2.9/bin
-
Запустите скрипт Entaxy:
./entaxy
-
При запуске откроется интерфейс командной строки, в котором будет отображаться информация о состоянии запуска. После завершения установки убедитесь в успешном запуске Entaxy:
karaf@root()> entaxy:platform-health Status │ Name │ Title │ Log ───────┼────────────────────────────┼────────────────────────────┼──── OK │ Entaxy Connections │ Entaxy Connections │ OK │ Entaxy Platform Bundles │ Entaxy Platform Bundles │ OK │ Entaxy Repositories │ Entaxy Repositories │ OK │ Entaxy UI Bundles │ Entaxy UI Bundles │ OK │ Entaxy Uniform Service │ Entaxy Uniform Service │ OK │ Ghost Objects HealthCheck │ Ghost Objects HealthCheck │ OK │ OSGi Framework Ready Check │ OSGi Framework Ready Check │ karaf@root()> entaxy:inactive 5 (0x Resolved │ 7 │ 1.10.0 │ mvn:ru.entaxy.platform.logging/cef-logger-layout/1.10.0 karaf@root()>
-
После запуска Entaxy и установки всех необходимых модулей, остановите Entaxy выполнив команду:
shutdown
-
Удалите следующие файлы из каталога Entaxy в случае если первый запуск был не в директории /opt/ :
rm -f data/cave/repository/repositories.db rm -rf data/cache/bundle9/data/config rm -f instances/instance.properties
Создание образа Entaxy в Docker
-
Перейдите в каталог
/opt
:cd /opt
-
Создайте файл
Dockerfile
в каталоге/opt
со следующим содержимым:FROM apache/karaf:4.2.9 COPY apache-karaf-4.2.9 /opt/apache-karaf-4.2.9
-
Запустите создание Docker образа:
docker build -t my_entaxy . -f ./Dockerfile
-
Убедитесь, что образ был успешно создан:
docker images
-
Запустите контейнер:
docker run -d -p 8101:8101 my_entaxy
-
Теперь можно подключиться к Entaxy с локальной машины по SSH:
ssh -p 8101 karaf@localhost
Если возникнет отказ в подключении с сообщением "Unable to negotiate with 127.0.0.1 port 8101: no matching host key type found. Their offer: ssh-rsa", используйте такой вариант подключения:
ssh -p 8101 -oHostKeyAlgorithms=+ssh-rsa karaf@localhost
Создание образа с использованием docker compose
-
Перейдите в каталог
/opt
:cd /opt
-
Создайте файл
docker-compose.yml
в каталоге/opt
со следующим содержимым:version: '3' services: entaxy: container_name: entaxy build: ./ restart: unless-stopped ports: - 8101:8101 - 8181:8181 volumes: - ./apache-karaf-4.2.9/data:/opt/apache-karaf-4.2.9/data - ./apache-karaf-4.2.9/etc:/opt/apache-karaf-4.2.9/etc
-
Запустите создание Docker образа и запуск контейнера одной командой:
docker compose up
-
Теперь можно подключиться к Entaxy с локальной машины по HTTP через браузер или по SSH:
ssh -p 8101 karaf@localhost
Если возникнет отказ в подключении с сообщением "Unable to negotiate with 127.0.0.1 port 8101: no matching host key type found. Their offer: ssh-rsa", используйте такой вариант подключения:
Экспорт образа в файл
-
Если у нас запущен докер, его нужно остановить:
docker stop entaxy
-
Сохраняем контейнер в виде образа (объединяем слои):
docker commit entaxy entaxy_all_in_one
-
Архивируем образ в файл:
docker save -o ./entaxy_all_in_one.tar entaxy_all_in_one
-
Переносим на другой сервер и загружаем в локальный реестр образов:
docker load < entaxy_all_in_one.tar docker pull entaxy_all_in_one
-
Образ перенесён и готов к запуску контейнера.