關於drools的相關介紹就不再贅述了,關於drools網上的資料都很少,或者都有些老了,最近折騰了一下,記錄下安裝部署的過程,希望能節省下大家的時間。
一、快速部署
1.拉取基礎鏡像,命令如下:
docker run -p 8080:8080 -p 8001:8001 -d --name drools-workbench jboss/drools-workbench-showcase:7.15.0.Final
docker run -p 8180:8080 -d --name kie-server --link drools-workbench:kie_wb jboss/kie-server-showcase:7.15.0.Final
2.點擊訪問,賬號密碼:admin/admin
二、問題
1.drools中文規則亂碼問題
由於我使用的是7.15.0版本,dockerfile中默認添加了JVM的文件編碼格式-Dfile.encoding=UTF-8,所以沒有此問題了。
2.容器時區問題
由於docker中默認是零時區,需要在dockerfile中設置容器的時區,內容如下
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone
3.drools規則持久化保存
由於Docker默認設置,一旦移除了容器,該容器中的數據也將被刪除,如果需要刪除並創建新的工作台容器,則會出現問題。
默認情況下,工作台容器的內部GIT根目錄位於 /opt/jboss/wildfly/bin/.niogit,因此你可以通過使用docker 的 volumne 機制來使此目錄在docker中保持不變:
掛載目錄,centos下創建/home/myuser/web_git/mygit,修改文件夾及其子文件夾文件權限,命令如下:
chmod -R 777 home/;
# Use -v :
docker run -p 8080:8080 -p 8001:8001 -v /home/myuser/wb_git:/opt/jboss/wildfly/bin/.niogit:Z -d --name drools-workbench jboss/drools-workbench-showcase:7.15.0.Final
如上面的命令,現在你的workbench git存儲庫將在你的本地文件系統路徑 /home/myuser/wb_git 中 大專欄 Drools 7.15.0 docker容器方式部署持久化。 因此,如果你刪除此容器並使用相同的共享卷啟動一個新容器,你也可以在新工作台的容器中找到所有數據。
4.drools規則源文件如何拿到
比如我想下載 MySpace 空間中的 Mortgages 項目的源代碼,使用ssh協議通過git下載即可,地址在 MySpace-> Mortgages -> 設置 -> General Settings的URL參數中。
如下圖所示:

git clone ssh://admin@localhost:8001/MySpace/example-Mortgages
用戶名密碼就是登陸workbench的用戶名密碼
三、完整部署流程
完整的dockerfile如下
From jboss/drools-workbench-showcase:7.15.0.Final
####JVM最大堆內存調大#####
ENV JAVA_OPTS -Xms256m -Xmx4096m -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8
# Added files are chowned to root user, change it to the jboss one.
USER root
###docker容器時間同步配置####
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone
1.構建鏡像,命令如下:
docker build -t drools-workbench:MyTag .
2.啟動鏡像,命令如下:
docker run -p 8080:8080 -p 8001:8001 -v /home/myuser/wb_git:/opt/jboss/wildfly/bin/.niogit:Z -d --name drools-workbench drools-workbench:MyTag
3.瀏覽器訪問,http://localhost:8080/drools-wb
參考資料:
