# While the Docker images themselves are supported for production usage, # this docker-compose.yaml is designed to be used by developers to run # an environment locally. It is not designed to be used in production. # We recommend to use Kubernetes in production with our Helm Charts: # https://docs.camunda.io/docs/self-managed/platform-deployment/kubernetes-helm/ # For local development, we recommend using KIND instead of `docker-compose`: # https://docs.camunda.io/docs/self-managed/platform-deployment/helm-kubernetes/guides/local-kubernetes-cluster/ # This is a lightweight configuration with Zeebe, Operate, Tasklist, and Elasticsearch # See docker-compose.yml for a configuration that also includes Optimize, Identity, and Keycloak. services: zeebe: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#zeebe image: camunda/zeebe:${CAMUNDA_PLATFORM_VERSION} container_name: zeebe ports: - "26500:26500" - "9600:9600" environment: # https://docs.camunda.io/docs/self-managed/zeebe-deployment/configuration/environment-variables/ - ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_CLASSNAME=io.camunda.zeebe.exporter.ElasticsearchExporter - ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_ARGS_URL=http://elasticsearch:9200 # default is 1000, see here: https://github.com/camunda/zeebe/blob/main/exporters/elasticsearch-exporter/src/main/java/io/camunda/zeebe/exporter/ElasticsearchExporterConfiguration.java#L259 - ZEEBE_BROKER_EXPORTERS_ELASTICSEARCH_ARGS_BULK_SIZE=1 # allow running with low disk space - ZEEBE_BROKER_DATA_DISKUSAGECOMMANDWATERMARK=0.998 - ZEEBE_BROKER_DATA_DISKUSAGEREPLICATIONWATERMARK=0.999 - "JAVA_TOOL_OPTIONS=-Xms512m -Xmx512m" restart: always healthcheck: test: [ "CMD-SHELL", "timeout 10s bash -c ':> /dev/tcp/127.0.0.1/9600' || exit 1" ] interval: 30s timeout: 5s retries: 5 start_period: 30s volumes: - zeebe:/usr/local/zeebe/data networks: - camunda-platform depends_on: - elasticsearch operate: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#operate image: camunda/operate:${CAMUNDA_PLATFORM_VERSION} container_name: operate ports: - "8081:8080" environment: # https://docs.camunda.io/docs/self-managed/operate-deployment/configuration/ - CAMUNDA_OPERATE_ZEEBE_GATEWAYADDRESS=zeebe:26500 - CAMUNDA_OPERATE_ELASTICSEARCH_URL=http://elasticsearch:9200 - CAMUNDA_OPERATE_ZEEBEELASTICSEARCH_URL=http://elasticsearch:9200 - management.endpoints.web.exposure.include=health - management.endpoint.health.probes.enabled=true healthcheck: test: [ "CMD-SHELL", "curl -f http://localhost:8080/actuator/health/readiness" ] interval: 30s timeout: 1s retries: 5 start_period: 30s networks: - camunda-platform depends_on: - zeebe - elasticsearch tasklist: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#tasklist image: camunda/tasklist:${CAMUNDA_PLATFORM_VERSION} container_name: tasklist ports: - "8082:8080" environment: # https://docs.camunda.io/docs/self-managed/tasklist-deployment/configuration/ - CAMUNDA_TASKLIST_ZEEBE_GATEWAYADDRESS=zeebe:26500 - CAMUNDA_TASKLIST_ELASTICSEARCH_URL=http://elasticsearch:9200 - CAMUNDA_TASKLIST_ZEEBEELASTICSEARCH_URL=http://elasticsearch:9200 - management.endpoints.web.exposure.include=health - management.endpoint.health.probes.enabled=true healthcheck: test: [ "CMD-SHELL", "curl -f http://localhost:8080/actuator/health/readiness" ] interval: 30s timeout: 1s retries: 5 start_period: 30s networks: - camunda-platform depends_on: - zeebe - elasticsearch connectors: # https://docs.camunda.io/docs/components/integration-framework/connectors/out-of-the-box-connectors/available-connectors-overview/ image: camunda/connectors-bundle:${CAMUNDA_CONNECTORS_VERSION} container_name: connectors ports: - "8085:8080" environment: - ZEEBE_CLIENT_BROKER_GATEWAY-ADDRESS=zeebe:26500 - ZEEBE_CLIENT_SECURITY_PLAINTEXT=true - CAMUNDA_OPERATE_CLIENT_URL=http://operate:8080 - CAMUNDA_OPERATE_CLIENT_USERNAME=demo - CAMUNDA_OPERATE_CLIENT_PASSWORD=demo - management.endpoints.web.exposure.include=health - management.endpoint.health.probes.enabled=true healthcheck: test: [ "CMD-SHELL", "curl -f http://localhost:8080/actuator/health/readiness" ] interval: 30s timeout: 1s retries: 5 start_period: 30s env_file: connector-secrets.txt networks: - camunda-platform depends_on: - zeebe - operate elasticsearch: # https://hub.docker.com/_/elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION} container_name: elasticsearch ports: - "9200:9200" - "9300:9300" environment: - bootstrap.memory_lock=true - discovery.type=single-node - xpack.security.enabled=false # allow running with low disk space - cluster.routing.allocation.disk.threshold_enabled=false - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 restart: always healthcheck: test: [ "CMD-SHELL", "curl -f http://localhost:9200/_cat/health | grep -q green" ] interval: 30s timeout: 5s retries: 3 volumes: - elastic:/usr/share/elasticsearch/data networks: - camunda-platform kibana: image: docker.elastic.co/kibana/kibana:${ELASTIC_VERSION} container_name: kibana ports: - 5601:5601 volumes: - kibana:/usr/share/kibana/data networks: - camunda-platform depends_on: - elasticsearch profiles: - kibana volumes: zeebe: elastic: kibana: networks: camunda-platform: