Базы данных

Приложение OpenBPM Control поддерживает подключение к PostgreSQL, MySQL и встроенной HSQLDB. Настройки выполняются через файл application.properties и переменные окружения в Docker Compose.

Универсальная конфигурация

Основной файл application.properties расположен в src/main/resources и содержит общие параметры подключения.

# Настройки подключения к базе данных
main.datasource.url=jdbc:hsqldb:file:./data/openbpm-control;shutdown=true
main.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver
main.datasource.username=sa
main.datasource.password=

Если переменные окружения не заданы, приложение использует встроенную HSQLDB.

Настройка через Docker Compose

Для запуска OpenBPM Control в контейнере вместе с выбранной базой данных используйте переменные окружения:

Параметр Назначение

MAIN_DATASOURCE_URL

JDBC-адрес для подключения к базе данных.

MAIN_DATASOURCE_DRIVERCLASSNAME

Класс драйвера.

MAIN_DATASOURCE_USERNAME, MAIN_DATASOURCE_PASSWORD

Учетные данные для подключения к БД.

HSQLDB (режим по умолчанию)

Если приложение запускается без внешней базы данных, оно автоматически создаёт локальный файл в каталоге ./data/openbpm-control. Этот вариант удобен для разработки и тестирования.

HSQLDB не рекомендуется для production-развертываний, так как не обеспечивает высокой производительности и отказоустойчивости.

PostgreSQL

PostgreSQL — современная объектно-реляционная система управления базами данных с открытым исходным кодом. Она отличается надёжностью, соответствием стандартам SQL и активным сообществом разработчиков. Благодаря высокой совместимости и стабильности PostgreSQL рекомендуется для использования в production-средах OpenBPM Control.

services:
  openbpm-control-database:
    image: postgres:16.3
    container_name: openbpm-control-database
    restart: "no"
    ports:
      - "5432:5432"
    volumes:
      - openbpm-control-database_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: "root"
      POSTGRES_PASSWORD: "root"
      POSTGRES_DB: "openbpm-control"

  openbpm-control:
    image: registry.gitflic.ru/project/openbpm/openbpm-control-community/openbpm-control-community:latest
    depends_on:
      openbpm-control-database:
        condition: service_started
    ports:
      - "8081:8081"
    environment:
      MAIN_DATASOURCE_URL: jdbc:postgresql://openbpm-control-database/openbpm-control
      MAIN_DATASOURCE_DRIVERCLASSNAME: org.postgresql.Driver
      MAIN_DATASOURCE_USERNAME: root
      MAIN_DATASOURCE_PASSWORD: root
      SERVER_PORT: "8081"

volumes:
  openbpm-control-database_data:

MySQL

MySQL — одна из наиболее распространённых систем управления базами данных, поддерживаемая многими приложениями и облачными платформами. Её использование в составе OpenBPM Control подходит как для разработки, так и для рабочих сред, где требуется совместимость с существующей инфраструктурой.

MySQL обеспечивает стабильную производительность, удобную настройку и широкую поддержку драйверов JDBC. Однако при работе в контейнерах и новых версиях MySQL (8.x и выше) важно учитывать особенности аутентификации и параметры безопасности соединения.

services:
  openbpm-control-database:
    image: mysql:latest
    container_name: openbpm-control-database
    environment:
      MYSQL_DATABASE: openbpm-control
      MYSQL_ROOT_PASSWORD: root
    ports:
      - "3306:3306"
    volumes:
      - openbpm-control-database_data:/var/lib/mysql

  openbpm-control:
    image: registry.gitflic.ru/project/openbpm/openbpm-control-community/openbpm-control-community:latest
    depends_on:
      openbpm-control-database:
        condition: service_started
    ports:
      - "8081:8081"
    environment:
      MAIN_DATASOURCE_URL: jdbc:mysql://openbpm-control-database/openbpm-control?useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=UTC
      MAIN_DATASOURCE_DRIVERCLASSNAME: com.mysql.cj.jdbc.Driver
      MAIN_DATASOURCE_USERNAME: root
      MAIN_DATASOURCE_PASSWORD: root
      SERVER_PORT: "8081"

volumes:
  openbpm-control-database_data:

Параметр allowPublicKeyRetrieval=true обязателен для подключения через caching_sha2_password, который используется в новых версиях MySQL (8.x и выше). Без него приложение не сможет установить соединение.