Flowable(Activiti)系列之三:docker运行flowable-ui,存储到mysql/postgres数据库,支持arm64架构

系列文章:

Flowable(Activiti)系列之一:中会签(多实例)使用方法以及ExecutionListener和TaskListener的区别
Flowable(Activiti)系列之二:不用自己写代码,使用Flowable-ui的Rest接口
Flowable(Activiti)系列之三:docker运行flowable-ui,存储到mysql/postgres数据库,支持arm64架构
Flowable(Activiti)系列之四:没有数据库创建权限部署flowable(activiti)时完全屏蔽LiquiBase
Flowable/Activiti 流程引擎远程调用时透传任意复杂的业务对象


我们项目需要用flowable做审批注,flowable官方已经有docker镜像可以运行,但它缺省只能存储在H2内存数据库,而且官方的镜像只有amd64(x64)架构的。项目运行在华为云,使用arm64架构,原本想着自己构建一个镜像,在docker官网搜索了一下,发现已经有人编译了多架构的镜像,所以直接拿来使用。现分享出来

拉取镜像

docker pull unamanic/flowable-ui

创建数据库表

我项目使用postgresql, 建表脚本在这里:
https://github.com/flowable/flowable-sql/blob/master/sql/create/all/flowable.postgres.all.create.sql

建议使用单独的schema,以便和自己的项目业务数据隔离。

运行Docker容器

由于本Docker镜像没有变量设定数据源,所以,研究了一下,它有一个JAVA_OPTS变量,所以皀相关参数全部放在这个变量里,如下:

docker run -e JAVA_OPTS="-Xmx1024M -Dspring.datasource.url=jdbc:postgresql://localhost:25432/postgres -Dspring.datasource.username=re_flow -Dspring.datasource.password=password" -p 9080:8080 --name flowable-ui -d unamanic/flowable-ui

这样就可以了。

可能出现的错误:

org.flowable.common.engine.impl.persistence.entity.PropertyEntity.getValue()" because "dbVersionProperty" is null

这是因为flowable启动时会检查数据库schema的版本是不是与当前flowable的版本匹配,但你的schema可能是新建的,但act_id_property表里没有这条记录。解决办法有二:
1、迁移这个表的数据过来
2、删除当前schema让它自己重建

另外,如果不希望每次重启更新数据库,可以加入一个环境变量:

-e flowable.database-schema-update=ignore
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值