jboss/jbpm-workbench-showcase
JBoss jBPM Workbench Showcase Docker image.
The image contains:
This image inherits from jboss/jbpm-workbench:latest
and provides some additional configurations:
This is a ready to run Docker image for jBPM Workbench. Just run it and try the jBPM Workbench!
To run a container:
docker run -p 8080:8080 -p 8001:8001 -d --name jbpm-workbench jboss/jbpm-workbench-showcase:latest
Once container and web applications started, you can navigate to it using one of the users described in section Users and roles
, using the following URL:
http://localhost:8080/business-central
This showcase image contains default users and roles:
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
You can see all logs generated by the standalone
binary running:
docker logs [-f] <container_id>
You can attach the container by running:
docker attach <container_id>
The jBPM Workbench web application logs can be found inside the container at path:
/opt/jboss/wildfly/standalone/log/server.log
Example:
sudo nsenter -t $(docker inspect --format '{{ .State.Pid }}' $(docker ps -lq)) -m -u -i -n -p -w
-bash-4.2# tail -f /opt/jboss/wildfly/standalone/log/server.log
The workbench stores all the project artifacts in an internal GIT repository. By default, the protocol available for accessing the GIT repository is SSH
at port 8001
.
As an example, if you import the IT_Orders
sample project, you can clone it by running:
git clone ssh://admin@localhost:8001/MySpace/IT_Orders
By default, the GIT repository is created when the application starts for first time at $WORKING_DIR/.niogit
, considering $WORKING_DIR
as the current directory where the application server is started.
You can specify a custom repository location by setting the following Java system property to your target file system directory:
-Dorg.uberfire.nio.git.dir=/home/youruser/some/path
NOTE: This directory can be shared with your docker host and with another containers using shared volumes when running the container, if you need so.
If necessary you can make GIT repositories available from outside localhost using the following Java system property:
-org.uberfire.nio.git.ssh.host=0.0.0.0
You can set this Java system properties permanent by adding the following lines in your standalone-full.xml
file as:
<system-properties>
<!-- Custom repository location. -->
<property name="org.uberfire.nio.git.dir" value="/home/youruser/some/path"/>
<!-- Make GIT repositories available from outside localhost. -->
<property name="org.uberfire.nio.git.ssh.host" value="0.0.0.0"/>
</system-properties>
NOTE: Users and password for ssh access are the same that for the web application users defined at the realm files.
As Docker defaults, once a container has been removed, the data within that container is removed as well.
At first glance this should not imply any issues as the assets authored on your workbench containers are not lost if you don't remove the container, you can stop and restart it as many times as you need, and have different kie execution server container's consuming those assets, the problem comes if you need to remove and create new workbench containers.
In the case you need to create a persistent environment you can use an approach based on Docker Volumes. Here are two ways of doing it.
Using default GIT root directory
By default, the internal GIT root directory for the workbench container is located at /opt/jboss/wildfly/bin/.niogit
, so you can make this directory persistent in your docker host by running the container using a docker shared volume as:
# Use -v <SOURCE_FS_PATH>:<CONTAINER_FS_PATH>
docker run -p 8080:8080 -p 8001:8001 -v /home/myuser/wb_git:/opt/jboss/wildfly/bin/.niogit:Z -d --name jbpm-workbench jboss/jbpm-workbench-showcase:latest
Please create /home/myuser/wb_git
before running the docker container and ensure you have set the right permissions.
As the above command, now your workbench git repository will be persistent at your host filesystem's path /home/myuser/wb_git
. So if you remove this container and start a new one just by using same shared volume, you'll find all your assets on the new workbench's container as well.
Using custom GIT root directory
Considering this showcase module as the base for this example, follow the next steps:
1.- Edit the jbpm-custom.cli and uncomment the default GIT repository location for your favourite one:
# Make GIT repositories root directory at /opt/jboss/wildfly/mygit.
# if (outcome != success) of /system-property=org.uberfire.nio.git.dir:read-resource
# /system-property=org.uberfire.nio.git.dir:add(value="/opt/jboss/wildfly/mygit")
# else
# /system-property=org.uberfire.nio.git.dir:write-attribute(name=value,value="/opt/jboss/wildfly/mygit")
# end-if
2.- Edit the Dockerfile and add these lines:
USER root
RUN mkdir -p $JBOSS_HOME/mygit
RUN chown jboss:jboss $JBOSS_HOME/mygit
USER jboss
3.- Create your Docker image:
docker build --rm -t jboss/jbpm-workbench-showcase:MY_TAG
At this point, the default GIT root directory for the workbench will be located inside the Docker container at /opt/jboss/wildfly/mygit/
. So all your assets will be stored in the underlying git structure on this path.
In order to keep the git repositories between different containers you can just start the container by configuring a new host volume as:
# Use -v <SOURCE_FS_PATH>:<CONTAINER_FS_PATH>
docker run -p 8080:8080 -p 8001:8001 -v /home/myuser/wb_git:/opt/jboss/wildfly/mygit:Z -d --name jbpm-workbench jboss/jbpm-workbench-showcase:MY_TAG
As the above command, now your workbench git repository will be persistent at your local filesystem path /home/myuser/wb_git
. So if you remove this container and start a new one just by using same shared volume, you'll find all your assets on the new workbench's container as well.
To spin up a shell in one of the containers try:
docker run -t -i -p 8080:8080 -p 8001:8001 jboss/jbpm-workbench-showcase:latest /bin/bash
You can then noodle around the container and run stuff & look at files etc.
If the application can't be accessed via browser (http://localhost:8080/business-central) please run the container in host network mode. It seems that latest docker versions have some restrictions on the networking side. Using an older daemon version this does not happen. Try:
docker run ... --network="host" ...
business-central
7.17.0.Final
full
server profile7.17.0.Final
docker pull jboss/jbpm-workbench-showcase