Skip to content

快速参考

  • 由……维护
    Bonitasoft 社区

  • 何处获取帮助:
    博尼塔官方文档、StackOverflow、博尼塔软件社区论坛

支持的标签及相应的 Dockerfile 链接

快速参考(续)

  • 在哪里提交问题:
    吉拉

  • 支持的架构:(更多信息)
    amd64, arm64v8, ppc64le

  • 已发布的图像工件详细信息:
    仓库信息 仓库的 repos/bonita/ 目录(历史)
    (图像元数据、传输大小等)

  • 图像更新:
    官方镜像仓库的 library/bonita 标签
    官方镜像仓库的 library/bonita 文件(历史记录)

  • 此描述的来源:
    文档库的 bonita/ 目录(历史)

什么是 Bonita?

Bonita 是一个开源的业务流程管理和工作流套件,创建于 2001 年。它始于法国国家计算机科学研究所,然后在法国计算机科学公司 Groupe Bull 内部孵化了数年。自 2009 年以来,Bonita 的开发由一家致力于此活动的公司支持:Bonitasoft。

维基百科.org/wiki/博尼塔业务流程管理

logo

如何使用此图像

快速启动

$ docker run --name bonita -d -p 8080:8080 bonita

这将启动一个运行 Bonita 运行时的容器:一个带有 Bonita 引擎+Bonita 门户的 Tomcat 捆绑包。如果未指定环境变量,就好像您使用 startup.{sh|bat} 在主机上启动了该捆绑包(对 REST 和 HTTP API 进行了安全强化,参见安全部分)。Bonita 在此处使用 H2 数据库。

您可以在 http://localhost:8080/bonita 访问 Bonita 门户,并使用默认凭证登录:install / install

将博尼塔与数据库连接

H2 数据库允许 Bonita 容器开箱即用,但在开发环境之外不建议使用。

由于 PostgreSQL 是推荐用于资格和生产环境的数据库,因此请遵循以下其中一个部分来配置您的 Bonita 容器以在 PostgreSQL 数据库上运行。您可以使用 PostgreSQL 容器,或者将 PostgreSQL 作为已安装的服务来使用。

PostgreSQL 容器

从 Bonita 2022.1 起,Bonita Docker 镜像不再包含自动创建数据库和用户的配置脚本。

因此,在启动 Bonita 容器之前,需要将 PostgreSQL 容器配置为与 Bonita 一起工作。在数据库配置页面中详细描述了将 PostgreSQL 数据库配置为与 Bonita 一起工作的内容。+ 或者,Bonita 在 docker-hub 上提供了一个预配置的 PostgreSQL 镜像。+ 你可以使用以下命令运行该镜像:

docker run --name mydbpostgres -h <hostname> -d bonitasoft/bonita-postgres:12.6

此图像是从以下 GitHub 存储库构建的,该存储库可进一步进行调整/定制以满足您的需求。

通过 docker-composedocker stack deploy

示例 docker-compose.yml 用于 bonita

version: '3'

services:
  db:
    image: bonitasoft/bonita-postgres:12.6
    environment:
      POSTGRES_PASSWORD: example
    restart: always
    command:
      - -c
      - max_prepared_transactions=100
  bonita:
    image: bonita:7.14.0
    hostname: custom-hostname.example.com
    ports:
      - 8080:8080
    environment:
      - DB_VENDOR=postgres
      - DB_HOST=db
      - DB_PORT=5432
      - DB_NAME=bonita
      - DB_USER=bonita
      - DB_PASS=bpm
      - BIZ_DB_NAME=business_data
      - BIZ_DB_USER=business_data
      - BIZ_DB_PASS=bpm
      - TENANT_LOGIN=tech_user
      - TENANT_PASSWORD=secret
      - PLATFORM_LOGIN=pfadmin
      - PLATFORM_PASSWORD=pfsecret
    restart: on-failure:2
    depends_on:
      - db
    entrypoint:
      - bash
      - -c
      - |
        set -e
        echo 'Waiting for PostgreSQL to be available'
        maxTries=10
        while [ "$$maxTries" -gt 0 ] && [ $$(echo 'QUIT' | nc -w 1 "$$DB_HOST" 5432; echo "$$?") -gt 0 ]; do
            sleep 1
            let maxTries--
        done
        if [ "$$maxTries" -le 0 ]; then
            echo >&2 'error: unable to contact Postgres after 10 tries'
            exit 1
        fi
        exec /opt/files/startup.sh /opt/bonita/server/bin/catalina.sh run

Try in PWD

运行 docker stack deploy -c stack.yml bonita (或 docker-compose -f stack.yml up ),等待其完全初始化,然后访问 http://swarm-ip:8080http://localhost:8080http://host-ip:8080 (视情况而定)。

  • <hostname> 替换为许可证生成命令中使用的那个
  • 将双 $$ 保持原样

PostgreSQL 作为已安装的服务

如果你不想在 Docker 容器中运行你的数据库,以下 env.txt 文件需要进行配置并提供给 docker run 命令:

DB_VENDOR=postgres
DB_HOST=172.17.0.2
DB_PORT=5432
DB_NAME=custombonitadb
DB_USER=custombonitauser
DB_PASS=custombonitapass
BIZ_DB_NAME=custombusinessdb
BIZ_DB_USER=custombusinessuser
BIZ_DB_PASS=custombusinesspass


docker run --name=bonita -h <hostname> --env-file=env.txt -d -p 8080:8080 bonita

使用自定义安全凭证启动 Bonita

docker run --name=bonita -h <hostname> -e "TENANT_LOGIN=tech_user" -e "TENANT_PASSWORD=secret" -e "PLATFORM_LOGIN=pfadmin" -e "PLATFORM_PASSWORD=pfsecret" -d -p 8080:8080 bonita

现在您可以在本地主机:8080/bonita 上访问 Bonita 运行时,并使用以下信息登录:tech_user / secret

数据存储在哪里

博尼塔使用将文件写入工作目录和临时目录的 Tomcat。

将以下文件夹挂载到卷中可能是一个很好的做法

  • /opt/bonita/server/temp
  • /opt/bonita/server/work

环境变量

当你启动 Bonita 镜像时,你可以通过在 docker run 命令行上传递一个或多个环境变量来调整 Bonita 实例的配置。

平台登录

此可选环境变量与 PLATFORM_PASSWORD 结合使用,用于定义平台管理员的用户名。如果未指定,将使用默认用户名 platformAdmin

平台密码

此环境变量建议你用于使用 Bonita 镜像。它设置 Bonita 的平台管理员密码。如果未指定,将使用默认密码 platform

租户登录

此可选环境变量与 TENANT_PASSWORD 结合使用,用于定义租户管理员的用户名。如果未指定,将使用默认用户名 install

租户密码

此环境变量建议您用于使用 Bonita 镜像。它设置 Bonita 的租户管理员密码。如果未指定,将使用默认密码 install

监控用户名

这个可选的环境变量与 MONITORING_PASSWORD 结合使用,用于定义对使用 BASIC Auth 访问保护的端点的访问:它用于 JMX 远程访问。如果未指定,将使用默认的监控用户名 monitoring

监控密码

此可选环境变量与 MONITORING_USERNAME 结合使用,用于定义对使用 BASIC Auth 访问保护的端点的访问:它用于 JMX 远程访问。如果未指定,将使用默认监控密码 mon1tor1ng_adm1n

HTTP_API

此可选环境变量用于启用/禁用 Bonita HTTP API。默认值为 false,这将停用 HTTP API。从 Bonita 2022.1 起,HTTP API 受基本访问认证保护。请参阅以下 2 个参数来配置基本访问认证。

HTTP_API 用户名

此可选环境变量用于配置 HTTP API 基本访问认证用户名。默认值为 http-api

HTTP_API 密码

这个可选的环境变量用于配置 HTTP API 基本访问认证密码。没有默认值,如果 HTTP_API=true ,则提供值是强制性的。

JMX 远程访问

此可选环境变量用于启用/禁用从远程机器访问 JMX 控制台。+ 默认值为 false 。+ 要连接的主机是 Bonita 服务器的名称/IP 地址,要连接的端口是 9000。+ 用于连接的凭证是环境变量 MONITORING_USERNAME、MONITORING_PASSWORD。

远程 IP 阀门启用

这个可选的环境变量允许激活/停用反向代理重定向。默认值是 false

ACCESSLOGS_STDOUT_ENABLED

这个可选的环境变量允许激活/停用将 Tomcat 访问日志写入标准输出。默认值是 false

访问日志文件已启用

这个可选的环境变量允许激活/停用将 Tomcat 访问日志写入特定文件。当激活时,将把这些日志写入 Docker 容器内的 /opt/bonita/logs/ 。实际上,只有在将卷挂载到上述目录时它才有用。默认值是 false

访问日志路径

如果 ACCESSLOGS_FILES_ENABLED=true ,此可选环境变量将覆盖访问日志文件的默认路径。默认值是 /opt/bonita/logs

ACCESSLOGS_PATH_APPEND_HOSTNAME

如果 ACCESSLOGS_FILES_ENABLED=true ,这个可选的环境变量允许将带有主机名的子目录附加到要放入访问日志文件的目录的完整路径。默认值是 false

访问日志最大天数

如果 ACCESSLOGS_FILES_ENABLED=true ,这个可选的环境变量允许在一定天数后自动删除访问日志文件。默认值是 30

HTTP 最大线程数

这个可选的环境变量允许指定 Tomcat 用于处理 HTTP/1.1 请求的最大 Http 线程数。它直接修改 Docker 容器内 Tomcat 的 server.xml 文件中的 maxThreads 参数。关于此参数的有用性的更多信息可在此处找到。默认值是 20

JAVA_OPTS

此可选环境变量用于自定义 JAVA_OPTS。默认值为 -Xms1024m -Xmx1024m -XX:MaxPermSize=256m。使用的语法是 -e JAVA_OPTS="-Xms2048m -Xmx2048m -XX:MaxPermSize=1024m"

数据库供应商

如果 Bonita 容器使用 --link 链接到 PostgreSQL 或 MySQL 数据库,此环境变量会自动设置为 postgres 或 mysql。默认值是 h2。如果您不使用 --link 功能,则可以覆盖它。

数据库主机,数据库端口

这些变量是可选的,结合使用来配置 Bonita 镜像以连接到数据库实例。如果使用 --link 来运行容器,它们会自动设置。

数据库名称,数据库用户,数据库密码

这些变量结合使用来定义 Bonita 应如何访问其数据库以进行内部运作。

DB_NAME 默认值为 bonitadb。

DB_USER 默认值为 bonitauser。

DB_PASS 默认值是 bonitapass。

BIZ_DB_NAME(业务数据库名称),BIZ_DB_USER(业务数据库用户),BIZ_DB_PASS(业务数据库密码)

这些变量结合使用来定义 Bonita 应如何访问业务数据数据库。

BIZ_DB_NAME 默认值为 businessdb。

BIZ_DB_USER 默认值为 businessuser。

BIZ_DB_PASS 默认值为 businesspass。

日志记录器配置

自 2022.1 起

可以通过在包含配置文件的文件夹 /opt/bonita/conf/logs 上挂载卷来配置记录器。

该卷必须包含 2 个文件 log4j2-loggers.xml 和 log4j2-appenders.xml。

对这两个文件中的任何一个所做的任何更改都会自动热重载并立即被考虑在内。

安全

此 Docker 镜像默认在 REST API 上激活静态和动态授权检查。为保持一致,它还停用 HTTP API。

对于特定需求,您可以通过将 HTTP_API 设置为 true 来覆盖此行为:

$ docker run  -e HTTP_API=true -e HTTP_API_PASSWORD="My-Cust0m_S3cR3T" --name bonita -d -p 8080:8080 bonita

从 Bonita 的早期版本更新

对于从 7.10.0 之前的版本进行更新,请参考文档。

  • 停止容器以执行数据库备份

    $ docker stop bonita
    
  • 检索数据库容器 IP

    $ docker inspect --format '{{ .NetworkSettings.IPAddress }}' mydbpostgres
    172.17.0.26
    
  • 转储数据库

    $ export PGPASSWORD=mysecretpassword
    $ pg_dump -O -x -h 172.17.0.26 -U postgres bonitadb > /tmp/bonitadb.sql
    

    请注意,businessdb 不会被更新工具更新,但你可能也想备份/移动它。

  • 加载转储

    $ export PGPASSWORD=mysecretpassword
    $ psql -U postgres -h 172.17.0.26 -d postgres -c "CREATE USER newbonitauser WITH PASSWORD 'newbonitapass';"
    $ psql -U postgres -h 172.17.0.26 -d postgres -c "CREATE DATABASE newbonitadb OWNER newbonitauser;"
    $ export PGPASSWORD=newbonitapass
    $ cat /tmp/bonitadb.sql | psql -U newbonitauser -h 172.17.0.26 newbonitadb
    
  • 检索最新的更新工具

    wget https://github.com/bonitasoft/bonita-platform-releases/releases/download/2023.2-u0/bonita-update-tool-3.3.0.zip
    unzip bonita-update-tool-3.3.0.zip
    
  • 配置更新工具

    $ cd bonita-update-tool-3.3.0
    

    编辑更新工具配置文件 Config.properties 以指向数据库。

    $ vim Config.properties
    

    例如:

    db.vendor=postgres
    db.url=jdbc:postgresql://172.17.0.26:5432/newbonitadb
    db.driverClass=org.postgresql.Driver
    db.user=newbonitauser
    db.password=newbonitapass
    
  • 启动更新工具

    $ cd bin
    $ ./bonita-update-tool
    
  • 启动指向数据库副本的新容器。

    $ docker run --name=bonita --link mydbpostgres:postgres -e "DB_NAME=newbonitadb" -e "DB_USER=newbonitauser" -e "DB_PASS=newbonitapass" -d -p 8081:8080 bonita:2023.2-u0
    

有关 Bonita 更新以及 7.10.0 之前版本的更多详细信息,请参阅文档。

许可证

博尼塔图像包括两部分:

  • LGPL v2.1 下的 Bonita 引擎

  • 博尼塔门户在 GPL v2.0 下

与所有 Docker 镜像一样,这些镜像可能还包含其他可能受其他许可证约束的软件(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。

一些能够自动检测到的额外许可证信息可能会在 repo-info 存储库的 bonita/ 目录中找到。

对于任何预构建镜像的使用,镜像用户有责任确保对此镜像的任何使用都符合其中包含的所有软件的任何相关许可证。