I am migrating a project from Flowable to Camunda 8 Self Managed.
I started by following the steps in the ‘Install and start with Docker Compose’ section of the docs.
And then added an ‘include’ at the start of my project’s docker compose file:
include:
- path: ./services/camunda/docker-compose/8.9/docker-compose-full.yaml
env_file: ./services/camunda/docker-compose/8.9/.env
services:
...
It’s important to leverage env_file scoping in order to isolate environment variables as Camunda’s docker compose files use generic environment variables, for example:
## Database Configuration ##
# Identity/Keycloak PostgreSQL Database
POSTGRES_DB=bitnami_keycloak
POSTGRES_USER=bn_keycloak
POSTGRES_PASSWORD=demo-postgres-password
## Keycloak Admin Credentials ##
# WARNING: Change these for production deployments!
KEYCLOAK_ADMIN_USER=admin
KEYCLOAK_ADMIN_PASSWORD=admin
Could Camunda implement strict environment variable and service namespacing?
Because service names must be unique within the final merged project network, you should treat each included file as its own “namespace.” E.g., append a unique, context-specific prefix to every service in a sub-module.
For example:
indentity -> camunda-identity-service
## Keycloak Admin Credentials ##
# WARNING: Change these for production deployments!
CAMUNDA_IDENTITY_SERVICE_ADMIN_USER=admin
CAMUNDA_IDENTITY_SERVICE_ADMIN_PASSWORD=admin