Imixs-Workflow is an open source workflow engine for human-centric business process management (BPM). Human-centric BPM means to support human skills and activities by a task orientated workflow-engine.
With this docker image you can run Imixs-Workflow as a microservice in a docker container.
The Imixs-Microservice project encapsulates the Imixs-Workflow Engine into a RESTful web service interface. The Imixs-Microservice can be bound to any business application, independent from the technology behind. In this architectural style the business logic can be changed without changing a single line of code.
A business process can be described by a BPMN Model using the Eclipse based Imixs-Workflow-Modelling Tool. Business data can be created, published and processed either in XML or JSON format.
See also [Marin Fowlers Blog)(http://martinfowler.com/articles/microservices.html) for further information about the concepts of microservices.
See also the Imixs-Microservice Project on GitHub to learn more about how to use the imixs-microservice.
The Imixs/Imixs-Microservice image contains the latest version of the Imixs-Admin Client. The Imixs-Admin Client can be used to administrate a Imixs-Workflow instance
<img src="imixs-admin-client-01.png" width="800" />
How to Run
To run Imixs-workflow in a Docker container, the container need to be linked to a postgreSQL database container. The database connection is configured in the Wildfly standalone.xml file and can be customized to any other database system.
1. Starting a Postgress Container
To start a postgreSQL container run the following command:
docker run --name imixs-workflow-postgres -d -e POSTGRES_DB=imixs-microservice -e POSTGRES_PASSWORD=adminadmin postgres:9.6.1
This command will start a Postgres container with a database named 'imixs-microservice'. This container can be liked to the Imixs-Workflow Container.
2. Starting Imixs-Workflow
After the postgres database container started, you can run the imixs/workflow container with a link to the postgres container using the following command:
docker run --name="imixs-workflow" -p 8080:8080 -p 9990:9990 \ -e WILDFLY_PASS="adminadmin" \ --link imixs-workflow-postgres:postgres \ imixs/workflow
The link to the postgres container allows the wildfly server to access the postgress database via the host name 'postgres' which is mapped by the --link parameter. This host name is used for the data-pool configuration in the standalone.xml file of wildfly.
You can access the Imixs-Microservice from you web browser at the following url:
More details about the imixs/wildfly image, which is the base image for Imixs-Workflow, can be found here.
You can simplify the start process of Imixs-Workflow by using 'docker-compose'.
The following example shows a docker-compose.yml file for imixs-workflow:
postgres: image: postgres:9.6.1 environment: POSTGRES_PASSWORD: adminadmin POSTGRES_DB: imixs-microservice imixsworkflow: image: imixs/workflow environment: WILDFLY_PASS: adminadmin ports: - "8080:8080" - "9990:9990" links: - postgres:postgres
Run start imixs-wokflow with docker-compose run:
To build the image from the Dockerfile manually checkout the sources and run:
docker build --tag=imixs/workflow .
If you have any questions concerning the Imixs-Microservice please see the Imixs-Microservice Project on GitHub