Установка через Docker
Last updated
Last updated
Bpium Docker — это версия Bpium для установки на собственные сервера или облако. Решение включает в себя конфигурационные файлы для создания собственного сервера с технологией контейнеризации.
Хост - операционная система, на которой запущены контейнеры Docker
- программное обеспечение, реализующее контейнерную изоляцию приложений
- метод виртуализации, при котором ядро операционной системы поддерживает несколько изолированных экземпляров пространства пользователя вместо одного. Эти экземпляры (обычно называемые контейнерами или зонами) с точки зрения пользователя полностью идентичны отдельному экземпляру операционной системы.
Внимание: данное руководство содержит инструкцию только по настройке решения на одном сервере.
Bpium Docker состоит из независимых контейнеров Docker:
Bpium — сервер приложения и логики
Bpium S3 — сервер файлового хранилища
Bpium BPM — сервер исполнения бизнес-процессов
PostgreSQL — сервер баз данных
Redis— сервер хранилища данных для бизнес-процессов
Контейнеры могут быть размещены на одном или разных серверах, включая кластерные решения. Реализация на нескольких серверах аналогична и так же потребует индивидуальной настройки.
Если у вас уже есть базы данных и хотите использовать их - это потребует дополнительной настройки файла конфигурации.
Готовая конфигурация включает:
Операционная система (Alpine)
Docker
Контейнер Bpium
Контейнер BPM
Контейнер Bpium-S3
Контейнер Postgres
Контейнер Redis
База данных Postgres:
База данных Redis
Хранилище Bpium-S3
Сеть устроена следующим образом:
Контейнеры объединены в одну сеть, имея доступ к друг другу.
Доступ во внешнюю сеть (интернет) имеют все контейнеры.
Обслуживать запросы, приходящие на хост могут только те контейнеры, которым это разрешили правилами.
Bpium может работать на защищенном канале связи (HTTPS). Для этого сервер приложения должен быть доступен из интернета, иметь доменное имя и SSL-сертификат Class 1 или более высокий. Для работы мультидоменной версии Bpium требуется wildcard-сертификат Class 2 или более высокий.
Способы размещения сертификата:
По-умолчанию:
Положите сертификат (.crt) и ключ сертификата в одну директорию с docker-compose.yml и назовите их cert
и cert-key
соответственно.
Свой:
Нужно поменять пути для сертификата и ключа в файле docker-compose.yml:
secrets:
cert:
file: ./cert
cert-key:
file: ./cert-key
Настройки Бипиума хранятся отдельно для каждого контейнера и указаны в секции environments, в формате:
HTTPS: 'true'
SERIAL_NUMBER:'0000-0000-0000-0000'
COOKIE_SECRET:'somestring'
SCRIPTS_TOKEN_SECRET: 'anotherstring'
Учтите: если ваша конфигурация состоит из нескольких серверов - вам потребуются дополнительные настройки.
Одним из минусов контейнеров является то что данные существуют только пока работает контейнер. Это является проблемой, если в контейнере содержится база данных. Для этого случая в Docker есть возможность связывать элементы файловой системы контейнера с файловой системой хоста. Это и позволяет сохранить данные баз данных. Чтобы получить список всех связанных элементов нужно ввести команду: docker volume ls.
Процедура запуска контейнеров состоит всего из одного этапа - что является преимуществом контейнерного решения.
Прейдите в каталог с файлом docker-compose.yml
и введите команды, если необходимо - с правами суперпользователя:docker-compose up -d
Это запустит процесс разворачивания необходимых контейнеров согласно настройках в файле docker-compose.yml
Если все сделано верно - то Бипиум готов к работе. Убедимся что контейнеры запущены и работают исправно:docker ps.
Если все хорошо - вы должны увидеть следующее:
Для обновления приложения Бипиума до последней версии нужно выполнить команду:
Это запустит процесс синхронизации с хранилищем образов и загрузит самые новые.
После этого нужно перезапустить контейнеры, чтобы Docker использовал новые образы:
Для диагностики и изучения возможных проблем с Бипиумом вы можете использовать логирование Docker.
Сначала, нужно узнать имя интересующего вас контейнера. Для этого введите команду:
Вам будут показаны все контейнеры, включая неработающие.
Для доступа к логам контейнера достаточно ввести следующую команду:
Приложение Bpium самостоятельно не занимается резервированием данных. При необходимости, требуется индивидуальная настройка этих процессов.
Бэкап:
docker exec -i postgres_container_name
- исполняет команду внутри контейнера в интерактивном режиме
pg_dump
- утилита для создания бекап-файла данных
--username pg_username
- имя пользователя базы данных (по-умолчанию postgres
)
--password pg_password
- пароль пользователя базы данных (см. docker-compose.yml)
database_name
- имя базы данных (по-умолчанию bpium_database
)
/path/bpium_dump
- указывает, куда будет сохранен дамп в системе хоста
docker exec -i postgres_container_name
- исполняет команду внутри контейнера в интерактивном режиме
pg_restore
- утилита для восстановления данных из бекап-файла
--username pg_username
- имя пользователя базы данных (по-умолчанию postgres
)
--password pg_password
- пароль пользователя базы данных (см. docker-compose.yml)
database_name
- имя базы данных (по-умолчанию bpium_database
)
/path/bpium_dump
- указывает, из какого дампа будет восстановлена база
Достаточно переместить директорию с базой и запустить контейнер с базой.
К примеру, нам нужно переместить на другой диск:
mv /home/bpium_data/postgres /mnt/sdb1/
Список с описанием всех переменных вы можете найти по этим ссылкам:
Теперь ваш Бипиум должен быть доступен по доменному имени/адресу хоста. Сам вход в приложение описан .