Quickstart
Run in order https://hub.docker.com/r/jboss/drools-workbench-showcase then https://hub.docker.com/r/jboss/kie-server-showcase/ and use the legacy API21 --link call https://docs.docker.com/engine/reference/commandline/network_connect/
# bring up fully configured drools workbench and kie-server docker instances docker run -p 8080:8080 -p 8001:8001 -d --name drools-workbench jboss/drools-workbench-showcase:latest docker ps -a d892b8408ae2 jboss/drools-workbench-showcase:latest "./start_drools-wb.sh" 7 seconds ago Up 7 seconds 0.0.0.0:8001->8001/tcp, 0.0.0.0:8080->8080/tcp drools-workbench # use admin:admin for http://localhost:8080/business-central/ docker run -p 8180:8080 -d --name kie-server --link drools-workbench:kie-wb jboss/kie-server-showcase:latest docker ps -a 62570b9cd1ef jboss/kie-server-showcase:latest "./start_kie-server.…" 18 seconds ago Up 17 seconds 0.0.0.0:8180->8080/tcp kie-server d892b8408ae2 jboss/drools-workbench-showcase:latest "./start_drools-wb.sh" 6 minutes ago Up 6 minutes 0.0.0.0:8001->8001/tcp, 0.0.0.0:8080->8080/tcp drools-workbench # use kieserver:kieserver1! for http://localhost:8180/kie-server/services/rest/server/
Endpoints
System | ||
---|---|---|
API Gateway | ||
ECS | Swagger | http://drools.eserv.cloud:8080/kie-server/docs/ |
API Gateway | ||
ECS | REST | http://drools.eserv.cloud:8080/kie-server/services/rest/server |
JBOSS Drools Workbench GUI
Kie Server REST endpoint
Solution
We have at least two paths to bringing up a kie-server container - add the kie-server war to a clean Tomcat or JBoss docker image - or use the built in images on dockerhub around the JBoss JEE server.
The last stable 7.18.0.Final version (March 2019) of the kie-server https://docs.jboss.org/drools/release/7.18.0.Final/drools-docs/html_single/#_ch.kie.server is in use
Kie Server using the JBoss based image in DockerHub
Start with the image in https://hub.docker.com/r/jboss/kie-server
Kie Server on the Tomcat Image
AWS Infrastructure
Essentially we will be using a static CI/CD pipeline consisting of the following hybrid architecture (most services on AWS, some outside like github and an jenkins server).
All the following CI/CD pipeline steps can be done either using AWS Lambda triggers or encoded in an external jenkins job.
A DockerFile and associated configuration artifacts is checked into a git repo (github or CodeCommit).
On commit trigger - the deployment server (Jenkins or CodeBuild) pushes the repo contents to an S3 bucket for use by CodeBuild (this allows swapping out the git repo source)
AWS CodeBuild (same as Jenkins) project builds the docker image and pushes it to a image repository like nexus3, AWS ECR or DockerHub.
https://us-east-1.console.aws.amazon.com/ecr/repositories/obrienlabs/?region=us-east-1
AWS CodeDeploy receives an ECS
Static Infrastructure - CloudFormation or Console based
Github Docker Source
AWS S3 Bucket for DockerFile source upload
Dynamic Infrastructure - AWS CLI based
AWS API Gateway
On Premises Infrastructure
Embedded Kie / Drools Server
pom.xml
<properties> <jboss.drools.version>7.31.0.Final</jboss.drools.version> </properties> <dependencies> <dependency> <groupId>org.kie</groupId> <artifactId>kie-api</artifactId> <version>${jboss.drools.version}</version> </dependency> <dependency> <groupId>org.kie</groupId> <artifactId>kie-internal</artifactId> <version>${jboss.drools.version}</version> </dependency> <dependency> <groupId>org.kie</groupId> <artifactId>kie-dmn-api</artifactId> <version>${jboss.drools.version}</version> </dependency> <dependency> <groupId>org.kie</groupId> <artifactId>kie-dmn-feel</artifactId> <version>${jboss.drools.version}</version> </dependency> <dependency> <groupId>org.kie.soup</groupId> <artifactId>kie-soup-commons</artifactId> <version>${jboss.drools.version}</version> </dependency> <dependency> <groupId>org.kie.soup</groupId> <artifactId>kie-soup-maven-support</artifactId> <version>${jboss.drools.version}</version> </dependency> <dependency> <groupId>org.drools</groupId> <artifactId>drools-cdi</artifactId> <version>${jboss.drools.version}</version> </dependency>