drools规则引擎部署和docker安装

一、docker安装

在 Ubuntu 20.04 LTS(或更高版本) 中安装 Docker

0、若安装过旧版本,使用以下命令卸载
sudo apt-get remove docker \
docker-engine \
docker.io

1、更新 Ubuntu
打开终端,依次运行下列命令:
sudo apt update

sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release

2、添加 Docker 库
首先,安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库:
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

然后,运行下列命令添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加 Docker 官方库:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

使用命令更新 Ubuntu 源列表:
sudo apt update

3、安装 Docker
最后,运行下列命令在 Ubuntu 服务器中安装最新 Docker CE:
sudo apt install docker-ce docker-ce-cli containerd.io

4、docker镜像加速
一般国内不容易访问到 https://hub.docker.com ,可以将docker镜像地址修改到国内的加速地址
在 /etc/docker/ 路径下创建 daemon.json 文件,内容如下:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://registry.aliyuncs.com",
"https://mirror.baidubce.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
之后重启docker服务:
sudo systemctl restart docker

5、设置Docker服务在每次开机时自动启动
sudo systemctl enable docker

6、建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。
出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
6.1、建立 docker 组:
$ sudo groupadd docker
6.2、将当前用户加入 docker 组:
$ sudo usermod -aG docker $USER
6.3、当前用户加入docker组后每次执行命令就不需要sudo来提升权限了

官方教程:https://docs.docker.com/engine/install/ubuntu/
中文参考文档:https://yeasy.gitbook.io/docker_practice/install/ubuntu

 

二、kie-server单机部署

单机部署可用于drools规则引擎的学习和研究,一般生产不使用单机部署模式

1,docker拉取镜像
docker拉取workbench镜像
docker pull jboss/drools-workbench-showcase

docker拉取kie-server镜像
docker pull jboss/kie-server-showcase


2,启动应用
workbench 执行运行命令
docker run -p 8080:8080 -p 8001:8001 -d --name drools-workbench jboss/drools-workbench-showcase:latest

启动kie-server的命令
docker run -p 8180:8080 -d --name kie-server --link drools-workbench:kie_wb jboss/kie-server-showcase:latest


3,workbench账号
USER        PASSWORD    ROLE
*********************************************
admin        admin                admin,analyst,kiemgmt
krisv           krisv                  admin,analyst
john            john                  analyst,Accounting,PM
sales-rep   sales-rep           analyst,sales
katy            katy                  analyst,HR
jack            jack                   analyst,IT


4,访问地址
4.1,workbench
http://localhost:8080/business-central/kie-wb.jsp (latest版本)
或者
http://localhost:8080/drools-wb/kie-wb.jsp (7.15.0.Final版本)

4.2,kie-server
http://localhost:8180/kie-server/services/rest/server/


5,官方文档
5.1,workbench
https://hub.docker.com/r/jboss/drools-workbench-showcase

5.2,kie-server
https://hub.docker.com/r/jboss/kie-server-showcase

 

5.3,开发文档

https://docs.jboss.org/drools/release/7.25.0.Final/drools-docs/html_single/index.html

 

 三、kie-server集群部署

使用docker compose模板文件部署kie-server 可以实现kie-server集群部署

0,文档
官方文档:https://docs.docker.com/compose/install/
中文版参考文档:https://yeasy.gitbook.io/docker_practice/compose/introduction

1、compose.yml配置示例:

1.1、drools-workbench:

version: "3"
services:
drools-wb:
image: jboss/drools-workbench-showcase:7.15.0.Final
container_name: drools-wb
restart: unless-stopped
# volumes:
# - /opt/jboss/.m2:/opt/jboss/.m2
environment:
- JAVA_OPTS=-Xms2g -Xmx2g -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai
- KIE_REPOSITORY=http://10.108.3.44:8081/repository/public/
ports:
- 8080:8080
- 8001:8001

1.2、kie-server:
version: '2.1'
services:
kie-server:
image: jboss/kie-server-showcase:7.15.0.Final
container_name: kie-server
restart: unless-stopped
ports:
- 8181:8080
environment:
- KIE_SERVER_ID=kie-server
- JAVA_OPTS=-Xms2g -Xmx2g -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai
- DOCKER_PORT=8181
- KIE_SERVER_CONTROLLER=http://10.108.3.35:8080/drools-wb/rest/controller
- KIE_SERVER_LOCATION=http://10.108.3.25:8181/kie-server/services/rest/server
- KIE_MAVEN_REPO=http://nexus.myself.com/content/groups/public
- KIE_REPOSITORY=http://nexus.myself.com/content/groups/public


2、docker compose命令示例:
2.1 启动
sudo docker compose -f /opt/kie-server/compose.yml up

使用 -f 参数指定docer-compose模板文件位置,然后使用 up 命令启动镜像。加上 -d 参数后会以守护进程方式启动。
up 该命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。

2.2 停止
sudo docker compose -f /opt/kie-server/compose.yml down

生产环境不建议使用down命令来停止kie-server,因为down命令会删除容器,这也就意味着如果不挂载外部文件目录一旦使用down命令后,生产上的数据会永久删除。

2.3 注意
目前 Docker 官方用 GO 语言 重写 了 Docker Compose,并将其作为了 docker cli 的子命令,称为 Compose V2。
你可以参照官方文档安装,然后将熟悉的 docker-compose 命令替换为 docker compose,即可使用 Docker Compose。

 

四、进入容器内部

使用docker attach、docker exec命令均可进入容器内部。attach命令在退出容器时会导致容器的停止,建议使用exec命令。

docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。
只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。
当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。

例如,进入kie-server容器内部:

sudo docker exec -it kie-server bash

有用的知识:kie-server容器中有隐藏的.m2文件夹,听说是自实现的一套类似Maven功能,不是实际引用的Maven,目录为:/opt/jboss/.m2/

 

posted @ 2023-09-04 09:39  追你追到  阅读(579)  评论(0编辑  收藏  举报