The Containerized Flow Engine

The services composing a titan Flow Engine deployment are containerized into docker images. They can be used for production or testing environments as well as for development.

Available image labels:

  • stable: Images built from the master branch

  • latest: Images built from the development branch

The Flow Engine on Docker Hub:

Control Peer Service Image

Images provided for running the services are based on Debian Buster (Slim) mainly for reasons of image size.

The Control Peer image is built in a two step Docker build process. The first stepp is equipped with a gcc build environment that enables building all necessary Python packages that are required for running the flow engine.

  • gcc

Further the ZeroMQ Python site-package is installed.

The second Docker build step then packages the Python titan Flow Engine using the build artifacts from the first step.

The titan Control Peer requires a Python 3.7 runtime and the Python site package: ujotypes-py. It is installed as titanfe Python site-package.

Configuration files for the processe are expected to be at /etc/titanfe/flowengine/config.yaml and should be mounted from a folder on the host to the running container:

docker run -v /titanfe/flowengine:/etc/titanfe/flowengine industrialdevops/flow-engine

When using the Flow Engine with docker-compose the configuration file should be mounted from a location on the host. Additionally the file controling how the Control Peer and Brickrunner log can me mounted to replace the config file that comes with the titanfe Python site-package

titan-controlpeer:
  image: industrialdevops/flow-engine:stable
  restart: always
  volumes:
    - ./etc/titanfe/flowengine:/etc/titanfe/flowengine
    - ./etc/titanfe/flowengine-log/log_config.yml:/usr/local/lib/python3.7/site-packages/titanfe/log_config.yml
  environment:
    SVC_CONFIG: /etc/titanfe/flowengine/config.yaml