Docker
Open-BPMN provides a Docker image to run the BPMN modeler as a Container in Docker or Kubernetes.
The Open-BPMN Docker image is based on the official NodeJS image (node:16-buster). The container image contains a pre-build application and exposes the HTTP port 3000 to run the Client in a Web Browser.
Run
To run the docker image locally run:
$ docker run --name="open-bpmn" \
--rm \
-p 3000:3000 \
imixs/open-bpmn
After starting the container the application is available on
http://localhost:3000
To stop the container run:
$ docker stop open-bpmn
Workspace Directory
The Theia Client is using a local workspace directory /usr/src/app/open-bpmn.glsp-client/workspace
. You can change this directory and map it to a local directory with the Docker param -v
In the following example we map the workspace to the local directory /tmp/my-workspace
$ docker run --name="open-bpmn" \
--rm \
-p 3000:3000 \
-v /tmp/my-workspace:/usr/src/app/open-bpmn.glsp-client/workspace \
imixs/open-bpmn
Build
To build the docker image from sources run:
$ docker build . -t imixs/open-bpmn
Start Script
The Open-BPMN Dockerfile is using a start script to launch the GLSP Server and the GLSP Theia client. The script is reading the GLSP Server version from the environment variable GLSP_SERVER_JAR
. You can overwrite this variable to build custom images.
Here is an example for a Dockerfile that copies a custom version of a server:
FROM imixs/open-bpmn:latest
# copy imixs-server module
COPY imixs-open-bpmn.server/target/imixs-open-bpmn.server-*-glsp.jar ./open-bpmn.glsp-server/target/
ENV GLSP_SERVER_JAR=open-bpmn.glsp-server/target/imixs-open-bpmn.server-*-glsp.jar
Dockerfile Entrypoint
In the Dockerfile we are using a custom entrypoint and set the yarn param --hostname=0.0.0.0
Note: Setting the environment param --hostname=0.0.0.0
is important to allow access form outside the container. Find more details also here and here.