From 1b0925d9ccc45de257b8de7c03a4cead6780beb7 Mon Sep 17 00:00:00 2001 From: Ahmed AbouZaid <6760103+aabouzaid@users.noreply.github.com> Date: Fri, 10 Jan 2025 12:57:06 +0100 Subject: [PATCH] ci(docker-compose): test all versions and variations (#50) --- .../docker-compose-test-e2e-full-setup.yaml | 78 +++++++++++-- .../docker-compose-test-e2e-template.yaml | 36 ++++-- .../docker-compose-web-modeler.yaml | 25 +++-- .../versions/camunda-8.3/docker-compose.yaml | 27 +++++ .../docker-compose-web-modeler.yaml | 26 ++++- .../versions/camunda-8.4/docker-compose.yaml | 27 +++++ docker-compose/versions/camunda-8.5/.env | 1 + .../docker-compose-web-modeler.yaml | 19 +++- .../versions/camunda-8.5/docker-compose.yaml | 66 +++++++---- .../docker-compose-web-modeler.yaml | 37 ++++--- .../versions/camunda-8.6/docker-compose.yaml | 104 ++++++++++-------- .../docker-compose-web-modeler.yaml | 37 ++++--- .../camunda-alpha/docker-compose.yaml | 104 ++++++++++-------- 13 files changed, 408 insertions(+), 179 deletions(-) diff --git a/.github/workflows/docker-compose-test-e2e-full-setup.yaml b/.github/workflows/docker-compose-test-e2e-full-setup.yaml index 2b8f6a2..41a7048 100644 --- a/.github/workflows/docker-compose-test-e2e-full-setup.yaml +++ b/.github/workflows/docker-compose-test-e2e-full-setup.yaml @@ -36,24 +36,80 @@ jobs: fail-fast: false matrix: versions: - - name: Camunda 8.3 + # Camunda 8.3 + - name: Camunda 8.3 ⭐ camunda-version: "8.3" - compose-args: "-f docker-compose.yaml -f docker-compose-web-modeler.yaml" - - name: Camunda 8.4 + main-compose-args: "-f docker-compose.yaml" + e2e-test-enabled: false + - name: Camunda 8.3 - Identity Disabled + camunda-version: "8.3" + main-compose-args: "-f docker-compose-core.yaml" + e2e-test-enabled: false + - name: Camunda 8.3 - Web Modeler Standalone + camunda-version: "8.3" + deps-compose-args: "--profile identity" + main-compose-args: "-f docker-compose-web-modeler.yaml" + e2e-test-enabled: false + # Camunda 8.4 + - name: Camunda 8.4 ⭐ + camunda-version: "8.4" + main-compose-args: "-f docker-compose.yaml" + e2e-test-enabled: false + - name: Camunda 8.4 - Identity Disabled camunda-version: "8.4" - compose-args: "-f docker-compose.yaml -f docker-compose-web-modeler.yaml" - - name: Camunda 8.5 + main-compose-args: "-f docker-compose-core.yaml" + e2e-test-enabled: false + - name: Camunda 8.4 - Web Modeler Standalone + camunda-version: "8.4" + deps-compose-args: "--profile identity" + main-compose-args: "-f docker-compose-web-modeler.yaml" + e2e-test-enabled: false + # Camunda 8.5 + - name: Camunda 8.5 ⭐ + camunda-version: "8.5" + main-compose-args: "-f docker-compose.yaml" + e2e-test-enabled: false + - name: Camunda 8.5 - Identity Disabled camunda-version: "8.5" - compose-args: "-f docker-compose.yaml -f docker-compose-web-modeler.yaml" - - name: Camunda 8.6 + main-compose-args: "-f docker-compose-core.yaml" + e2e-test-enabled: false + - name: Camunda 8.5 - Web Modeler Standalone + camunda-version: "8.5" + deps-compose-args: "--profile identity" + main-compose-args: "-f docker-compose-web-modeler.yaml" + e2e-test-enabled: false + # Camunda 8.6 + - name: Camunda 8.6 ⭐ + camunda-version: "8.6" + e2e-test-enabled: true + - name: Camunda 8.6 - Identity Disabled + camunda-version: "8.6" + main-compose-args: "-f docker-compose-core.yaml" + e2e-test-enabled: false + - name: Camunda 8.6 - Web Modeler Standalone camunda-version: "8.6" - compose-args: "--profile full" - - name: Camunda Alpha + deps-compose-args: "--profile identity" + main-compose-args: "-f docker-compose-web-modeler.yaml" + e2e-test-enabled: false + # Camunda Alpha + - name: Camunda Alpha ⭐ + camunda-version: "alpha" + main-compose-args: "-f docker-compose.yaml" + e2e-test-enabled: true + - name: Camunda Alpha - Identity Disabled + camunda-version: "alpha" + main-compose-args: "-f docker-compose-core.yaml" + e2e-test-enabled: false + - name: Camunda Alpha - Web Modeler Standalone camunda-version: "alpha" - compose-args: "--profile full" + deps-compose-args: "--profile identity" + main-compose-args: "-f docker-compose-web-modeler.yaml" + e2e-test-enabled: false exclude: ${{ fromJson(needs.init.outputs.unchanged-versions) }} uses: ./.github/workflows/docker-compose-test-e2e-template.yaml secrets: inherit with: camunda-version: ${{ matrix.versions.camunda-version }} - compose-args: ${{ matrix.versions.compose-args }} + deps-compose-args: ${{ matrix.versions.deps-compose-args }} + main-compose-args: ${{ matrix.versions.main-compose-args }} + e2e-test-enabled: ${{ matrix.versions.e2e-test-enabled }} diff --git a/.github/workflows/docker-compose-test-e2e-template.yaml b/.github/workflows/docker-compose-test-e2e-template.yaml index 363a39e..b456dee 100644 --- a/.github/workflows/docker-compose-test-e2e-template.yaml +++ b/.github/workflows/docker-compose-test-e2e-template.yaml @@ -7,7 +7,10 @@ on: description: Camunda minor version in format x.y required: true type: string - compose-args: + deps-compose-args: + description: Arguments supplied to Docker Compose dependencies + type: string + main-compose-args: description: Arguments supplied to Docker Compose required: true type: string @@ -34,16 +37,26 @@ jobs: name: Run runs-on: ubuntu-latest steps: + # + # Init. + + - name: ℹ️ Print workflow inputs ℹ️ + env: + GITHUB_CONTEXT: ${{ toJson(inputs) }} + run: | + echo "Workflow Inputs:" + echo "${GITHUB_CONTEXT}" + - name: ℹ️ Print Docker Compose version ℹ️ + run: | + docker compose version - name: disable and stop mono-xsp4.service run: | sudo systemctl stop mono-xsp4.service || true sudo systemctl disable mono-xsp4.service || true sudo killall mono || true sudo killall xsp4 || true - - name: Checkout uses: actions/checkout@v4 - - name: Login to Docker registries run: | # DockerHub registry. @@ -56,12 +69,17 @@ jobs: # # Docker Compose. - - name: Bring up containers + - name: ⭐ Bring up containers dependencies + if: inputs.deps-compose-args working-directory: ${{ env.COMPOSE_WORKING_DIRECTORY }} run: | - docker compose ${{ inputs.compose-args }} \ + docker compose ${{ inputs.deps-compose-args }} \ + up --quiet-pull -d + - name: ⭐ Bring up containers + working-directory: ${{ env.COMPOSE_WORKING_DIRECTORY }} + run: | + docker compose ${{ inputs.main-compose-args }} \ up --quiet-pull -d - - name: Wait until all containers are healthy timeout-minutes: 5 run: | @@ -76,17 +94,15 @@ jobs: - name: Install Playwright uses: ./.github/actions/install-playwright - if: ${{ inputs.e2e-test-enabled }} + if: inputs.e2e-test-enabled with: working-directory: ${{ inputs.e2e-test-directory }} - - name: Run Playwright tests - if: ${{ inputs.e2e-test-enabled }} + if: inputs.e2e-test-enabled id: test working-directory: ${{ inputs.e2e-test-directory }} run: | npx playwright test ${{ inputs.e2e-test-args }} - - name: Upload Playwright reports if: always() && steps.test.conclusion != 'skipped' uses: actions/upload-artifact@v4 diff --git a/docker-compose/versions/camunda-8.3/docker-compose-web-modeler.yaml b/docker-compose/versions/camunda-8.3/docker-compose-web-modeler.yaml index e6d6354..bee42e5 100644 --- a/docker-compose/versions/camunda-8.3/docker-compose-web-modeler.yaml +++ b/docker-compose/versions/camunda-8.3/docker-compose-web-modeler.yaml @@ -5,8 +5,6 @@ # # Note: this file is using Mailpit to simulate a mail server -version: "2.4" - services: modeler-db: @@ -23,6 +21,9 @@ services: POSTGRES_PASSWORD: modeler-db-password networks: - modeler + profiles: + - '' + - web-modeler-standalone modeler-websockets: container_name: modeler-websockets @@ -42,6 +43,9 @@ services: PUSHER_APP_SECRET: modeler-app-secret networks: - modeler + profiles: + - '' + - web-modeler-standalone mailpit: # If you want to use your own SMTP server, you can remove this container @@ -57,6 +61,9 @@ services: interval: 30s networks: - modeler + profiles: + - '' + - web-modeler-standalone # Modeler containers modeler-restapi: @@ -68,8 +75,6 @@ services: condition: service_healthy mailpit: condition: service_started - identity: - condition: service_healthy healthcheck: test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8091/health/readiness" ] interval: 5s @@ -96,8 +101,11 @@ services: RESTAPI_MAIL_ENABLE_TLS: "false" RESTAPI_MAIL_FROM_ADDRESS: "noreply@example.com" networks: - - modeler - - camunda-platform + - modeler + - camunda-platform + profiles: + - '' + - web-modeler-standalone modeler-webapp: container_name: modeler-webapp @@ -137,7 +145,10 @@ services: networks: - modeler - camunda-platform + profiles: + - '' + - web-modeler-standalone networks: camunda-platform: - modeler: \ No newline at end of file + modeler: diff --git a/docker-compose/versions/camunda-8.3/docker-compose.yaml b/docker-compose/versions/camunda-8.3/docker-compose.yaml index 0fe61c5..a3169c5 100644 --- a/docker-compose/versions/camunda-8.3/docker-compose.yaml +++ b/docker-compose/versions/camunda-8.3/docker-compose.yaml @@ -43,6 +43,9 @@ services: depends_on: - elasticsearch - identity + profiles: + - '' + - orchestration operate: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#operate image: camunda/operate:${CAMUNDA_PLATFORM_VERSION} @@ -83,6 +86,9 @@ services: - zeebe - identity - elasticsearch + profiles: + - '' + - orchestration tasklist: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#tasklist image: camunda/tasklist:${CAMUNDA_PLATFORM_VERSION} @@ -126,6 +132,9 @@ services: condition: service_healthy identity: condition: service_healthy + profiles: + - '' + - orchestration 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} @@ -159,6 +168,9 @@ services: - zeebe - operate - identity + profiles: + - '' + - orchestration optimize: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#optimize image: camunda/optimize:${CAMUNDA_OPTIMIZE_VERSION} @@ -194,6 +206,9 @@ services: depends_on: - identity - elasticsearch + profiles: + - '' + - orchestration identity: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#identity container_name: identity @@ -251,6 +266,9 @@ services: depends_on: keycloak: condition: service_healthy + profiles: + - '' + - identity postgres: # https://hub.docker.com/_/postgres container_name: postgres @@ -269,6 +287,9 @@ services: - postgres:/var/lib/postgresql/data networks: - identity-network + profiles: + - '' + - identity keycloak: # https://hub.docker.com/r/bitnami/keycloak container_name: keycloak @@ -295,6 +316,9 @@ services: - identity-network depends_on: - postgres + profiles: + - '' + - identity elasticsearch: # https://hub.docker.com/_/elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION} @@ -323,6 +347,9 @@ services: - elastic:/usr/share/elasticsearch/data networks: - camunda-platform + profiles: + - '' + - orchestration kibana: image: docker.elastic.co/kibana/kibana:${ELASTIC_VERSION} diff --git a/docker-compose/versions/camunda-8.4/docker-compose-web-modeler.yaml b/docker-compose/versions/camunda-8.4/docker-compose-web-modeler.yaml index 2166430..53fb322 100644 --- a/docker-compose/versions/camunda-8.4/docker-compose-web-modeler.yaml +++ b/docker-compose/versions/camunda-8.4/docker-compose-web-modeler.yaml @@ -5,8 +5,6 @@ # # Note: this file is using Mailpit to simulate a mail server -version: "2.4" - services: modeler-db: @@ -23,8 +21,12 @@ services: POSTGRES_PASSWORD: modeler-db-password networks: - modeler + - camunda-platform volumes: - postgres-web:/var/lib/postgresql/data + profiles: + - '' + - web-modeler-standalone modeler-websockets: container_name: modeler-websockets @@ -44,6 +46,10 @@ services: PUSHER_APP_SECRET: modeler-app-secret networks: - modeler + - camunda-platform + profiles: + - '' + - web-modeler-standalone mailpit: # If you want to use your own SMTP server, you can remove this container @@ -59,6 +65,10 @@ services: interval: 30s networks: - modeler + - camunda-platform + profiles: + - '' + - web-modeler-standalone # Modeler containers modeler-restapi: @@ -70,8 +80,6 @@ services: condition: service_healthy mailpit: condition: service_started - identity: - condition: service_healthy healthcheck: test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8091/health/readiness" ] interval: 5s @@ -98,8 +106,11 @@ services: RESTAPI_MAIL_ENABLE_TLS: "false" RESTAPI_MAIL_FROM_ADDRESS: "noreply@example.com" networks: - - modeler - - camunda-platform + - modeler + - camunda-platform + profiles: + - '' + - web-modeler-standalone modeler-webapp: container_name: modeler-webapp @@ -137,6 +148,9 @@ services: networks: - modeler - camunda-platform + profiles: + - '' + - web-modeler-standalone networks: camunda-platform: diff --git a/docker-compose/versions/camunda-8.4/docker-compose.yaml b/docker-compose/versions/camunda-8.4/docker-compose.yaml index 28140b4..ec338be 100644 --- a/docker-compose/versions/camunda-8.4/docker-compose.yaml +++ b/docker-compose/versions/camunda-8.4/docker-compose.yaml @@ -45,6 +45,9 @@ services: depends_on: - elasticsearch - identity + profiles: + - '' + - orchestration operate: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#operate image: camunda/operate:${CAMUNDA_OPERATE_VERSION} @@ -89,6 +92,9 @@ services: - zeebe - identity - elasticsearch + profiles: + - '' + - orchestration tasklist: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#tasklist image: camunda/tasklist:${CAMUNDA_TASKLIST_VERSION} @@ -136,6 +142,9 @@ services: condition: service_healthy identity: condition: service_healthy + profiles: + - '' + - orchestration 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} @@ -171,6 +180,9 @@ services: - zeebe - operate - identity + profiles: + - '' + - orchestration optimize: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#optimize image: camunda/optimize:${CAMUNDA_OPTIMIZE_VERSION} @@ -208,6 +220,9 @@ services: depends_on: - identity - elasticsearch + profiles: + - '' + - orchestration identity: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#identity container_name: identity @@ -266,6 +281,9 @@ services: depends_on: keycloak: condition: service_healthy + profiles: + - '' + - identity postgres: # https://hub.docker.com/_/postgres container_name: postgres @@ -284,6 +302,9 @@ services: - postgres:/var/lib/postgresql/data networks: - identity-network + profiles: + - '' + - identity keycloak: # https://hub.docker.com/r/bitnami/keycloak container_name: keycloak @@ -310,6 +331,9 @@ services: - identity-network depends_on: - postgres + profiles: + - '' + - identity elasticsearch: # https://hub.docker.com/_/elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION} @@ -338,6 +362,9 @@ services: - elastic:/usr/share/elasticsearch/data networks: - camunda-platform + profiles: + - '' + - orchestration kibana: image: docker.elastic.co/kibana/kibana:${ELASTIC_VERSION} diff --git a/docker-compose/versions/camunda-8.5/.env b/docker-compose/versions/camunda-8.5/.env index 3425fdd..7e026b0 100644 --- a/docker-compose/versions/camunda-8.5/.env +++ b/docker-compose/versions/camunda-8.5/.env @@ -27,6 +27,7 @@ KEYCLOAK_SERVER_VERSION=21.1.2 MAILPIT_VERSION=v1.18.7 POSTGRES_VERSION=14.5-alpine HOST=localhost +KEYCLOAK_HOST=localhost ## Configuration ## # By default the zeebe api is public, when setting this to `identity` a valid zeebe client token is required diff --git a/docker-compose/versions/camunda-8.5/docker-compose-web-modeler.yaml b/docker-compose/versions/camunda-8.5/docker-compose-web-modeler.yaml index f31584d..2eb0bfd 100644 --- a/docker-compose/versions/camunda-8.5/docker-compose-web-modeler.yaml +++ b/docker-compose/versions/camunda-8.5/docker-compose-web-modeler.yaml @@ -5,8 +5,6 @@ # # Note: this file is using Mailpit to simulate a mail server -version: "2.4" - services: modeler-db: @@ -25,6 +23,9 @@ services: - modeler volumes: - postgres-web:/var/lib/postgresql/data + profiles: + - '' + - web-modeler-standalone modeler-websockets: container_name: modeler-websockets @@ -44,6 +45,9 @@ services: PUSHER_APP_SECRET: modeler-app-secret networks: - modeler + profiles: + - '' + - web-modeler-standalone mailpit: # If you want to use your own SMTP server, you can remove this container @@ -59,6 +63,9 @@ services: interval: 30s networks: - modeler + profiles: + - '' + - web-modeler-standalone # Modeler containers modeler-restapi: @@ -70,8 +77,6 @@ services: condition: service_healthy mailpit: condition: service_started - identity: - condition: service_healthy healthcheck: test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8091/health/readiness" ] interval: 5s @@ -100,6 +105,9 @@ services: networks: - modeler - camunda-platform + profiles: + - '' + - web-modeler-standalone modeler-webapp: container_name: modeler-webapp @@ -137,6 +145,9 @@ services: networks: - modeler - camunda-platform + profiles: + - '' + - web-modeler-standalone networks: camunda-platform: diff --git a/docker-compose/versions/camunda-8.5/docker-compose.yaml b/docker-compose/versions/camunda-8.5/docker-compose.yaml index 287cf40..3d9bd20 100644 --- a/docker-compose/versions/camunda-8.5/docker-compose.yaml +++ b/docker-compose/versions/camunda-8.5/docker-compose.yaml @@ -20,7 +20,7 @@ services: - "8088:8080" environment: # https://docs.camunda.io/docs/self-managed/zeebe-deployment/configuration/environment-variables/ - ZEEBE_BROKER_GATEWAY_SECURITY_AUTHENTICATION_MODE=${ZEEBE_AUTHENTICATION_MODE} - - ZEEBE_BROKER_GATEWAY_SECURITY_AUTHENTICATION_IDENTITY_ISSUERBACKENDURL=http://keycloak:8080/auth/realms/camunda-platform + - ZEEBE_BROKER_GATEWAY_SECURITY_AUTHENTICATION_IDENTITY_ISSUERBACKENDURL=http://keycloak:18080/auth/realms/camunda-platform - ZEEBE_BROKER_GATEWAY_SECURITY_AUTHENTICATION_IDENTITY_AUDIENCE=zeebe-api - ZEEBE_BROKER_GATEWAY_SECURITY_AUTHENTICATION_IDENTITY_BASEURL=http://identity:8084 - ZEEBE_BROKER_GATEWAY_MULTITENANCY_ENABLED=${MULTI_TENANCY_ENABLED} @@ -46,6 +46,9 @@ services: depends_on: - elasticsearch - identity + profiles: + - '' + - orchestration operate: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#operate image: camunda/operate:${CAMUNDA_OPERATE_VERSION} @@ -57,21 +60,21 @@ services: - ZEEBE_CLIENT_ID=${ZEEBE_CLIENT_ID} - ZEEBE_CLIENT_SECRET=${ZEEBE_CLIENT_SECRET} - ZEEBE_TOKEN_AUDIENCE=zeebe-api - - ZEEBE_AUTHORIZATION_SERVER_URL=http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/token + - ZEEBE_AUTHORIZATION_SERVER_URL=http://keycloak:18080/auth/realms/camunda-platform/protocol/openid-connect/token - CAMUNDA_OPERATE_ELASTICSEARCH_URL=http://elasticsearch:9200 - CAMUNDA_OPERATE_ZEEBEELASTICSEARCH_URL=http://elasticsearch:9200 # For more information regarding configuration with Identity see: # https://docs.camunda.io/docs/self-managed/operate-deployment/authentication/#identity - SPRING_PROFILES_ACTIVE=identity-auth - CAMUNDA_OPERATE_IDENTITY_BASEURL=http://identity:8084 - - CAMUNDA_OPERATE_IDENTITY_ISSUER_URL=http://${HOST}:18080/auth/realms/camunda-platform - - CAMUNDA_OPERATE_IDENTITY_ISSUER_BACKEND_URL=http://keycloak:8080/auth/realms/camunda-platform + - CAMUNDA_OPERATE_IDENTITY_ISSUER_URL=http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform + - CAMUNDA_OPERATE_IDENTITY_ISSUER_BACKEND_URL=http://keycloak:18080/auth/realms/camunda-platform - CAMUNDA_OPERATE_IDENTITY_CLIENTID=operate - CAMUNDA_OPERATE_IDENTITY_CLIENTSECRET=XALaRPl5qwTEItdwCMiPS62nVpKs7dL7 - CAMUNDA_OPERATE_IDENTITY_AUDIENCE=operate-api - CAMUNDA_OPERATE_MULTITENANCY_ENABLED=${MULTI_TENANCY_ENABLED} - - SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URI=http://keycloak:8080/auth/realms/camunda-platform - - SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWK_SET_URI=http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/certs + - SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URI=http://keycloak:18080/auth/realms/camunda-platform + - SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWK_SET_URI=http://keycloak:18080/auth/realms/camunda-platform/protocol/openid-connect/certs - CAMUNDA_OPERATE_IDENTITY_RESOURCEPERMISSIONSENABLED=${RESOURCE_AUTHORIZATIONS_ENABLED} - management.endpoints.web.exposure.include=health - management.endpoint.health.probes.enabled=true @@ -90,6 +93,9 @@ services: - zeebe - identity - elasticsearch + profiles: + - '' + - orchestration tasklist: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#tasklist image: camunda/tasklist:${CAMUNDA_TASKLIST_VERSION} @@ -103,21 +109,21 @@ services: - ZEEBE_CLIENT_SECRET=${ZEEBE_CLIENT_SECRET} - ZEEBE_CLIENT_CONFIG_PATH=/tmp/zeebe_auth_cache - ZEEBE_TOKEN_AUDIENCE=zeebe-api - - ZEEBE_AUTHORIZATION_SERVER_URL=http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/token + - ZEEBE_AUTHORIZATION_SERVER_URL=http://keycloak:18080/auth/realms/camunda-platform/protocol/openid-connect/token - CAMUNDA_TASKLIST_ELASTICSEARCH_URL=http://elasticsearch:9200 - CAMUNDA_TASKLIST_ZEEBEELASTICSEARCH_URL=http://elasticsearch:9200 # For more information regarding configuration with Identity see: # https://docs.camunda.io/docs/self-managed/tasklist-deployment/authentication/#identity - SPRING_PROFILES_ACTIVE=identity-auth - CAMUNDA_TASKLIST_IDENTITY_BASEURL=http://identity:8084 - - CAMUNDA_TASKLIST_IDENTITY_ISSUER_URL=http://${HOST}:18080/auth/realms/camunda-platform - - CAMUNDA_TASKLIST_IDENTITY_ISSUER_BACKEND_URL=http://keycloak:8080/auth/realms/camunda-platform + - CAMUNDA_TASKLIST_IDENTITY_ISSUER_URL=http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform + - CAMUNDA_TASKLIST_IDENTITY_ISSUER_BACKEND_URL=http://keycloak:18080/auth/realms/camunda-platform - CAMUNDA_TASKLIST_IDENTITY_CLIENTID=tasklist - CAMUNDA_TASKLIST_IDENTITY_CLIENTSECRET=XALaRPl5qwTEItdwCMiPS62nVpKs7dL7 - CAMUNDA_TASKLIST_IDENTITY_AUDIENCE=tasklist-api - CAMUNDA_TASKLIST_MULTITENANCY_ENABLED=${MULTI_TENANCY_ENABLED} - - SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URI=http://keycloak:8080/auth/realms/camunda-platform - - SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWK_SET_URI=http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/certs + - SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URI=http://keycloak:18080/auth/realms/camunda-platform + - SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWK_SET_URI=http://keycloak:18080/auth/realms/camunda-platform/protocol/openid-connect/certs - CAMUNDA_TASKLIST_IDENTITY_RESOURCE_PERMISSIONS_ENABLED=${RESOURCE_AUTHORIZATIONS_ENABLED} - management.endpoints.web.exposure.include=health - management.endpoint.health.probes.enabled=true @@ -138,6 +144,9 @@ services: condition: service_healthy identity: condition: service_healthy + profiles: + - '' + - orchestration 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} @@ -151,9 +160,9 @@ services: - ZEEBE_CLIENT_SECRET=${ZEEBE_CLIENT_SECRET} - ZEEBE_CLIENT_CONFIG_PATH=/tmp/zeebe_auth_cache - ZEEBE_TOKEN_AUDIENCE=zeebe-api - - ZEEBE_AUTHORIZATION_SERVER_URL=http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/token + - ZEEBE_AUTHORIZATION_SERVER_URL=http://keycloak:18080/auth/realms/camunda-platform/protocol/openid-connect/token - CAMUNDA_OPERATE_CLIENT_URL=http://operate:8080 - - CAMUNDA_IDENTITY_ISSUER_BACKEND_URL=http://keycloak:8080/auth/realms/camunda-platform + - CAMUNDA_IDENTITY_ISSUER_BACKEND_URL=http://keycloak:18080/auth/realms/camunda-platform - CAMUNDA_IDENTITY_CLIENT_ID=connectors - CAMUNDA_IDENTITY_CLIENT_SECRET=XALaRPl5qwTEItdwCMiPS62nVpKs7dL7 - CAMUNDA_IDENTITY_TYPE=KEYCLOAK @@ -173,6 +182,9 @@ services: - zeebe - operate - identity + profiles: + - '' + - orchestration optimize: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#optimize image: camunda/optimize:${CAMUNDA_OPTIMIZE_VERSION} @@ -185,8 +197,8 @@ services: - SPRING_PROFILES_ACTIVE=ccsm - CAMUNDA_OPTIMIZE_ZEEBE_ENABLED=true - CAMUNDA_OPTIMIZE_ENTERPRISE=false - - CAMUNDA_OPTIMIZE_IDENTITY_ISSUER_URL=http://${HOST}:18080/auth/realms/camunda-platform - - CAMUNDA_OPTIMIZE_IDENTITY_ISSUER_BACKEND_URL=http://keycloak:8080/auth/realms/camunda-platform + - CAMUNDA_OPTIMIZE_IDENTITY_ISSUER_URL=http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform + - CAMUNDA_OPTIMIZE_IDENTITY_ISSUER_BACKEND_URL=http://keycloak:18080/auth/realms/camunda-platform - CAMUNDA_OPTIMIZE_IDENTITY_CLIENTID=optimize - CAMUNDA_OPTIMIZE_IDENTITY_CLIENTSECRET=XALaRPl5qwTEItdwCMiPS62nVpKs7dL7 - CAMUNDA_OPTIMIZE_IDENTITY_AUDIENCE=optimize-api @@ -210,6 +222,9 @@ services: depends_on: - identity - elasticsearch + profiles: + - '' + - orchestration identity: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#identity container_name: identity @@ -219,8 +234,8 @@ services: environment: # https://docs.camunda.io/docs/self-managed/identity/deployment/configuration-variables/ SERVER_PORT: 8084 IDENTITY_RETRY_DELAY_SECONDS: 30 - KEYCLOAK_URL: http://keycloak:8080/auth - IDENTITY_AUTH_PROVIDER_BACKEND_URL: http://keycloak:8080/auth/realms/camunda-platform + KEYCLOAK_URL: http://keycloak:18080/auth + IDENTITY_AUTH_PROVIDER_BACKEND_URL: http://keycloak:18080/auth/realms/camunda-platform IDENTITY_DATABASE_HOST: postgres IDENTITY_DATABASE_PORT: 5432 IDENTITY_DATABASE_NAME: bitnami_keycloak @@ -278,6 +293,9 @@ services: depends_on: keycloak: condition: service_healthy + profiles: + - '' + - identity postgres: # https://hub.docker.com/_/postgres container_name: postgres @@ -296,6 +314,9 @@ services: - postgres:/var/lib/postgresql/data networks: - identity-network + profiles: + - '' + - identity keycloak: # https://hub.docker.com/r/bitnami/keycloak container_name: keycloak @@ -303,8 +324,9 @@ services: volumes: - keycloak-theme:/opt/bitnami/keycloak/themes/identity ports: - - "18080:8080" + - "18080:18080" environment: + KEYCLOAK_HTTP_PORT: 18080 KEYCLOAK_HTTP_RELATIVE_PATH: /auth KEYCLOAK_DATABASE_HOST: postgres KEYCLOAK_DATABASE_PASSWORD: "#3]O?4RGj)DE7Z!9SA5" @@ -312,7 +334,7 @@ services: KEYCLOAK_ADMIN_PASSWORD: admin restart: on-failure healthcheck: - test: [ "CMD", "curl", "-f", "http://localhost:8080/auth" ] + test: [ "CMD", "curl", "-f", "http://localhost:18080/auth" ] interval: 30s timeout: 15s retries: 5 @@ -322,6 +344,9 @@ services: - identity-network depends_on: - postgres + profiles: + - '' + - identity elasticsearch: # https://hub.docker.com/_/elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION} @@ -350,6 +375,9 @@ services: - elastic:/usr/share/elasticsearch/data networks: - camunda-platform + profiles: + - '' + - orchestration kibana: image: docker.elastic.co/kibana/kibana:${ELASTIC_VERSION} diff --git a/docker-compose/versions/camunda-8.6/docker-compose-web-modeler.yaml b/docker-compose/versions/camunda-8.6/docker-compose-web-modeler.yaml index f31584d..888ed00 100644 --- a/docker-compose/versions/camunda-8.6/docker-compose-web-modeler.yaml +++ b/docker-compose/versions/camunda-8.6/docker-compose-web-modeler.yaml @@ -5,8 +5,6 @@ # # Note: this file is using Mailpit to simulate a mail server -version: "2.4" - services: modeler-db: @@ -25,6 +23,9 @@ services: - modeler volumes: - postgres-web:/var/lib/postgresql/data + profiles: + - '' + - web-modeler-standalone modeler-websockets: container_name: modeler-websockets @@ -32,7 +33,7 @@ services: ports: - "8060:8060" healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8060/up" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8060/up"] interval: 5s timeout: 15s retries: 30 @@ -44,12 +45,15 @@ services: PUSHER_APP_SECRET: modeler-app-secret networks: - modeler + profiles: + - '' + - web-modeler-standalone - mailpit: + modeler-mailpit: # If you want to use your own SMTP server, you can remove this container # and configure RESTAPI_MAIL_HOST, RESTAPI_MAIL_PORT, REST_API_MAIL_USER, # REST_API_MAIL_PASSWORD and RESTAPI_MAIL_ENABLE_TLS in modeler-restapi - container_name: mailpit + container_name: modeler-mailpit image: axllent/mailpit:${MAILPIT_VERSION} ports: - "1025:1025" @@ -59,6 +63,9 @@ services: interval: 30s networks: - modeler + profiles: + - '' + - web-modeler-standalone # Modeler containers modeler-restapi: @@ -68,12 +75,10 @@ services: depends_on: modeler-db: condition: service_healthy - mailpit: + modeler-mailpit: condition: service_started - identity: - condition: service_healthy healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8091/health/readiness" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8091/health/readiness"] interval: 5s timeout: 15s retries: 30 @@ -93,13 +98,16 @@ services: RESTAPI_OAUTH2_TOKEN_ISSUER: http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform RESTAPI_OAUTH2_TOKEN_ISSUER_BACKEND_URL: http://keycloak:18080/auth/realms/camunda-platform RESTAPI_SERVER_URL: http://localhost:8070 - RESTAPI_MAIL_HOST: mailpit + RESTAPI_MAIL_HOST: modeler-mailpit RESTAPI_MAIL_PORT: 1025 RESTAPI_MAIL_ENABLE_TLS: "false" RESTAPI_MAIL_FROM_ADDRESS: "noreply@example.com" networks: - - modeler - - camunda-platform + - modeler + - camunda-platform + profiles: + - '' + - web-modeler-standalone modeler-webapp: container_name: modeler-webapp @@ -110,7 +118,7 @@ services: modeler-restapi: condition: service_healthy healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8071/health/readiness" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8071/health/readiness"] interval: 5s timeout: 15s retries: 30 @@ -137,6 +145,9 @@ services: networks: - modeler - camunda-platform + profiles: + - '' + - web-modeler-standalone networks: camunda-platform: diff --git a/docker-compose/versions/camunda-8.6/docker-compose.yaml b/docker-compose/versions/camunda-8.6/docker-compose.yaml index 7bfe203..822251c 100644 --- a/docker-compose/versions/camunda-8.6/docker-compose.yaml +++ b/docker-compose/versions/camunda-8.6/docker-compose.yaml @@ -12,8 +12,6 @@ services: zeebe: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#zeebe - profiles: - - full image: camunda/zeebe:${CAMUNDA_PLATFORM_VERSION} container_name: zeebe ports: @@ -36,7 +34,7 @@ services: - "JAVA_TOOL_OPTIONS=-Xms512m -Xmx512m" restart: always healthcheck: - test: [ "CMD-SHELL", "timeout 10s bash -c ':> /dev/tcp/127.0.0.1/9600' || exit 1" ] + test: ["CMD-SHELL", "timeout 10s bash -c ':> /dev/tcp/127.0.0.1/9600' || exit 1"] interval: 30s timeout: 5s retries: 5 @@ -48,10 +46,11 @@ services: depends_on: - elasticsearch - identity + profiles: + - '' + - orchestration operate: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#operate - profiles: - - full image: camunda/operate:${CAMUNDA_PLATFORM_VERSION} container_name: operate ports: @@ -81,7 +80,7 @@ services: - management.endpoint.health.probes.enabled=true - ZEEBE_CLIENT_CONFIG_PATH=/tmp/zeebe_auth_cache healthcheck: - test: [ "CMD-SHELL", "wget -O - -q 'http://localhost:9600/actuator/health/readiness'" ] + test: ["CMD-SHELL", "wget -O - -q 'http://localhost:9600/actuator/health/readiness'"] interval: 30s timeout: 1s retries: 5 @@ -94,10 +93,11 @@ services: - zeebe - identity - elasticsearch + profiles: + - '' + - orchestration tasklist: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#tasklist - profiles: - - full image: camunda/tasklist:${CAMUNDA_PLATFORM_VERSION} container_name: tasklist ports: @@ -128,7 +128,7 @@ services: - management.endpoints.web.exposure.include=health - management.endpoint.health.probes.enabled=true healthcheck: - test: [ "CMD-SHELL", "wget -O - -q 'http://localhost:9600/actuator/health/readiness'" ] + test: ["CMD-SHELL", "wget -O - -q 'http://localhost:9600/actuator/health/readiness'"] interval: 30s timeout: 1s retries: 5 @@ -144,10 +144,11 @@ services: condition: service_healthy identity: condition: service_healthy + profiles: + - '' + - orchestration connectors: # https://docs.camunda.io/docs/components/integration-framework/connectors/out-of-the-box-connectors/available-connectors-overview/ - profiles: - - full image: camunda/connectors-bundle:${CAMUNDA_CONNECTORS_VERSION} container_name: connectors ports: @@ -171,7 +172,7 @@ services: - management.endpoint.health.probes.enabled=true env_file: connector-secrets.txt healthcheck: - test: [ "CMD-SHELL", "curl -f http://localhost:8080/actuator/health/readiness" ] + test: ["CMD-SHELL", "curl -f http://localhost:8080/actuator/health/readiness"] interval: 30s timeout: 1s retries: 5 @@ -182,10 +183,11 @@ services: - zeebe - operate - identity + profiles: + - '' + - orchestration optimize: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#optimize - profiles: - - full image: camunda/optimize:${CAMUNDA_OPTIMIZE_VERSION} container_name: optimize ports: @@ -208,7 +210,7 @@ services: - management.endpoints.web.exposure.include=health - management.endpoint.health.probes.enabled=true healthcheck: - test: [ "CMD-SHELL", "curl -f http://localhost:8090/api/readyz" ] + test: ["CMD-SHELL", "curl -f http://localhost:8090/api/readyz"] interval: 30s timeout: 1s retries: 5 @@ -221,11 +223,11 @@ services: depends_on: - identity - elasticsearch + profiles: + - '' + - orchestration identity: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#identity - profiles: - - full - - modeling container_name: identity image: camunda/identity:${CAMUNDA_PLATFORM_VERSION} ports: @@ -262,6 +264,7 @@ services: KEYCLOAK_USERS_0_ROLES_3: "Tasklist" KEYCLOAK_USERS_0_ROLES_4: "Web Modeler" KEYCLOAK_USERS_0_ROLES_5: "Web Modeler Admin" + KEYCLOAK_USERS_0_ROLES_6: "Zeebe" KEYCLOAK_CLIENTS_0_NAME: zeebe KEYCLOAK_CLIENTS_0_ID: ${ZEEBE_CLIENT_ID} KEYCLOAK_CLIENTS_0_SECRET: ${ZEEBE_CLIENT_SECRET} @@ -281,7 +284,7 @@ services: MULTITENANCY_ENABLED: ${MULTI_TENANCY_ENABLED} RESOURCE_PERMISSIONS_ENABLED: ${RESOURCE_AUTHORIZATIONS_ENABLED} healthcheck: - test: [ "CMD", "wget", "-q", "--tries=1", "--spider", "http://localhost:8082/actuator/health" ] + test: ["CMD", "wget", "-q", "--tries=1", "--spider", "http://localhost:8082/actuator/health"] interval: 5s timeout: 15s retries: 30 @@ -295,11 +298,11 @@ services: depends_on: keycloak: condition: service_healthy + profiles: + - '' + - identity postgres: # https://hub.docker.com/_/postgres - profiles: - - full - - modeling container_name: postgres image: postgres:${POSTGRES_VERSION} environment: @@ -308,7 +311,7 @@ services: POSTGRES_PASSWORD: "#3]O?4RGj)DE7Z!9SA5" restart: on-failure healthcheck: - test: [ "CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}" ] + test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] interval: 10s timeout: 5s retries: 5 @@ -316,11 +319,11 @@ services: - postgres:/var/lib/postgresql/data networks: - identity-network + profiles: + - '' + - identity keycloak: # https://hub.docker.com/r/bitnami/keycloak - profiles: - - full - - modeling container_name: keycloak image: bitnami/keycloak:${KEYCLOAK_SERVER_VERSION} volumes: @@ -346,10 +349,11 @@ services: - identity-network depends_on: - postgres + profiles: + - '' + - identity elasticsearch: # https://hub.docker.com/_/elasticsearch - profiles: - - full image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION} container_name: elasticsearch ports: @@ -368,7 +372,7 @@ services: hard: -1 restart: always healthcheck: - test: [ "CMD-SHELL", "curl -f http://localhost:9200/_cat/health | grep -q green" ] + test: ["CMD-SHELL", "curl -f http://localhost:9200/_cat/health | grep -q green"] interval: 30s timeout: 5s retries: 3 @@ -376,11 +380,11 @@ services: - elastic:/usr/share/elasticsearch/data networks: - camunda-platform + profiles: + - '' + - orchestration web-modeler-db: - profiles: - - full - - modeling container_name: web-modeler-db image: postgres:${POSTGRES_VERSION} healthcheck: @@ -396,14 +400,14 @@ services: - web-modeler volumes: - postgres-web:/var/lib/postgresql/data + profiles: + - '' + - web-modeler mailpit: # If you want to use your own SMTP server, you can remove this container # and configure RESTAPI_MAIL_HOST, RESTAPI_MAIL_PORT, REST_API_MAIL_USER, # REST_API_MAIL_PASSWORD and RESTAPI_MAIL_ENABLE_TLS in web-modeler-restapi - profiles: - - full - - modeling container_name: mailpit image: axllent/mailpit:${MAILPIT_VERSION} ports: @@ -414,11 +418,11 @@ services: interval: 30s networks: - web-modeler + profiles: + - '' + - web-modeler web-modeler-restapi: - profiles: - - full - - modeling container_name: web-modeler-restapi image: camunda/web-modeler-restapi:${CAMUNDA_WEB_MODELER_VERSION} command: /bin/sh -c "java $JAVA_OPTIONS org.springframework.boot.loader.JarLauncher" @@ -430,7 +434,7 @@ services: identity: condition: service_healthy healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8091/health/readiness" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8091/health/readiness"] interval: 5s timeout: 15s retries: 30 @@ -454,9 +458,10 @@ services: RESTAPI_MAIL_PORT: 1025 RESTAPI_MAIL_ENABLE_TLS: "false" RESTAPI_MAIL_FROM_ADDRESS: "noreply@example.com" + CAMUNDA_MODELER_CLUSTERS_0_ID: "local-zeebe" CAMUNDA_MODELER_CLUSTERS_0_NAME: "Local Zeebe instance" CAMUNDA_MODELER_CLUSTERS_0_VERSION: ${CAMUNDA_PLATFORM_VERSION} - CAMUNDA_MODELER_CLUSTERS_0_URL_ZEEBE_GRPC: http://zeebe:26500 + CAMUNDA_MODELER_CLUSTERS_0_URL_ZEEBE_GRPC: grpc://zeebe:26500 CAMUNDA_MODELER_CLUSTERS_0_URL_ZEEBE_REST: http://zeebe:8080 CAMUNDA_MODELER_CLUSTERS_0_URL_OPERATE: http://operate:8080 CAMUNDA_MODELER_CLUSTERS_0_URL_TASKLIST: http://tasklist:8080 @@ -466,11 +471,11 @@ services: networks: - web-modeler - camunda-platform + profiles: + - '' + - web-modeler web-modeler-webapp: - profiles: - - full - - modeling container_name: web-modeler-webapp image: camunda/web-modeler-webapp:${CAMUNDA_WEB_MODELER_VERSION} ports: @@ -479,7 +484,7 @@ services: web-modeler-restapi: condition: service_healthy healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8071/health/readiness" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8071/health/readiness"] interval: 5s timeout: 15s retries: 30 @@ -506,17 +511,17 @@ services: networks: - web-modeler - camunda-platform + profiles: + - '' + - web-modeler web-modeler-websockets: - profiles: - - full - - modeling container_name: web-modeler-websockets image: camunda/web-modeler-websockets:${CAMUNDA_WEB_MODELER_VERSION} ports: - "8060:8060" healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8060/up" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8060/up"] interval: 5s timeout: 15s retries: 30 @@ -528,6 +533,9 @@ services: PUSHER_APP_SECRET: web-modeler-app-secret networks: - web-modeler + profiles: + - '' + - web-modeler kibana: image: docker.elastic.co/kibana/kibana:${ELASTIC_VERSION} diff --git a/docker-compose/versions/camunda-alpha/docker-compose-web-modeler.yaml b/docker-compose/versions/camunda-alpha/docker-compose-web-modeler.yaml index f31584d..888ed00 100644 --- a/docker-compose/versions/camunda-alpha/docker-compose-web-modeler.yaml +++ b/docker-compose/versions/camunda-alpha/docker-compose-web-modeler.yaml @@ -5,8 +5,6 @@ # # Note: this file is using Mailpit to simulate a mail server -version: "2.4" - services: modeler-db: @@ -25,6 +23,9 @@ services: - modeler volumes: - postgres-web:/var/lib/postgresql/data + profiles: + - '' + - web-modeler-standalone modeler-websockets: container_name: modeler-websockets @@ -32,7 +33,7 @@ services: ports: - "8060:8060" healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8060/up" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8060/up"] interval: 5s timeout: 15s retries: 30 @@ -44,12 +45,15 @@ services: PUSHER_APP_SECRET: modeler-app-secret networks: - modeler + profiles: + - '' + - web-modeler-standalone - mailpit: + modeler-mailpit: # If you want to use your own SMTP server, you can remove this container # and configure RESTAPI_MAIL_HOST, RESTAPI_MAIL_PORT, REST_API_MAIL_USER, # REST_API_MAIL_PASSWORD and RESTAPI_MAIL_ENABLE_TLS in modeler-restapi - container_name: mailpit + container_name: modeler-mailpit image: axllent/mailpit:${MAILPIT_VERSION} ports: - "1025:1025" @@ -59,6 +63,9 @@ services: interval: 30s networks: - modeler + profiles: + - '' + - web-modeler-standalone # Modeler containers modeler-restapi: @@ -68,12 +75,10 @@ services: depends_on: modeler-db: condition: service_healthy - mailpit: + modeler-mailpit: condition: service_started - identity: - condition: service_healthy healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8091/health/readiness" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8091/health/readiness"] interval: 5s timeout: 15s retries: 30 @@ -93,13 +98,16 @@ services: RESTAPI_OAUTH2_TOKEN_ISSUER: http://${KEYCLOAK_HOST}:18080/auth/realms/camunda-platform RESTAPI_OAUTH2_TOKEN_ISSUER_BACKEND_URL: http://keycloak:18080/auth/realms/camunda-platform RESTAPI_SERVER_URL: http://localhost:8070 - RESTAPI_MAIL_HOST: mailpit + RESTAPI_MAIL_HOST: modeler-mailpit RESTAPI_MAIL_PORT: 1025 RESTAPI_MAIL_ENABLE_TLS: "false" RESTAPI_MAIL_FROM_ADDRESS: "noreply@example.com" networks: - - modeler - - camunda-platform + - modeler + - camunda-platform + profiles: + - '' + - web-modeler-standalone modeler-webapp: container_name: modeler-webapp @@ -110,7 +118,7 @@ services: modeler-restapi: condition: service_healthy healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8071/health/readiness" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8071/health/readiness"] interval: 5s timeout: 15s retries: 30 @@ -137,6 +145,9 @@ services: networks: - modeler - camunda-platform + profiles: + - '' + - web-modeler-standalone networks: camunda-platform: diff --git a/docker-compose/versions/camunda-alpha/docker-compose.yaml b/docker-compose/versions/camunda-alpha/docker-compose.yaml index 7bfe203..822251c 100644 --- a/docker-compose/versions/camunda-alpha/docker-compose.yaml +++ b/docker-compose/versions/camunda-alpha/docker-compose.yaml @@ -12,8 +12,6 @@ services: zeebe: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#zeebe - profiles: - - full image: camunda/zeebe:${CAMUNDA_PLATFORM_VERSION} container_name: zeebe ports: @@ -36,7 +34,7 @@ services: - "JAVA_TOOL_OPTIONS=-Xms512m -Xmx512m" restart: always healthcheck: - test: [ "CMD-SHELL", "timeout 10s bash -c ':> /dev/tcp/127.0.0.1/9600' || exit 1" ] + test: ["CMD-SHELL", "timeout 10s bash -c ':> /dev/tcp/127.0.0.1/9600' || exit 1"] interval: 30s timeout: 5s retries: 5 @@ -48,10 +46,11 @@ services: depends_on: - elasticsearch - identity + profiles: + - '' + - orchestration operate: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#operate - profiles: - - full image: camunda/operate:${CAMUNDA_PLATFORM_VERSION} container_name: operate ports: @@ -81,7 +80,7 @@ services: - management.endpoint.health.probes.enabled=true - ZEEBE_CLIENT_CONFIG_PATH=/tmp/zeebe_auth_cache healthcheck: - test: [ "CMD-SHELL", "wget -O - -q 'http://localhost:9600/actuator/health/readiness'" ] + test: ["CMD-SHELL", "wget -O - -q 'http://localhost:9600/actuator/health/readiness'"] interval: 30s timeout: 1s retries: 5 @@ -94,10 +93,11 @@ services: - zeebe - identity - elasticsearch + profiles: + - '' + - orchestration tasklist: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#tasklist - profiles: - - full image: camunda/tasklist:${CAMUNDA_PLATFORM_VERSION} container_name: tasklist ports: @@ -128,7 +128,7 @@ services: - management.endpoints.web.exposure.include=health - management.endpoint.health.probes.enabled=true healthcheck: - test: [ "CMD-SHELL", "wget -O - -q 'http://localhost:9600/actuator/health/readiness'" ] + test: ["CMD-SHELL", "wget -O - -q 'http://localhost:9600/actuator/health/readiness'"] interval: 30s timeout: 1s retries: 5 @@ -144,10 +144,11 @@ services: condition: service_healthy identity: condition: service_healthy + profiles: + - '' + - orchestration connectors: # https://docs.camunda.io/docs/components/integration-framework/connectors/out-of-the-box-connectors/available-connectors-overview/ - profiles: - - full image: camunda/connectors-bundle:${CAMUNDA_CONNECTORS_VERSION} container_name: connectors ports: @@ -171,7 +172,7 @@ services: - management.endpoint.health.probes.enabled=true env_file: connector-secrets.txt healthcheck: - test: [ "CMD-SHELL", "curl -f http://localhost:8080/actuator/health/readiness" ] + test: ["CMD-SHELL", "curl -f http://localhost:8080/actuator/health/readiness"] interval: 30s timeout: 1s retries: 5 @@ -182,10 +183,11 @@ services: - zeebe - operate - identity + profiles: + - '' + - orchestration optimize: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#optimize - profiles: - - full image: camunda/optimize:${CAMUNDA_OPTIMIZE_VERSION} container_name: optimize ports: @@ -208,7 +210,7 @@ services: - management.endpoints.web.exposure.include=health - management.endpoint.health.probes.enabled=true healthcheck: - test: [ "CMD-SHELL", "curl -f http://localhost:8090/api/readyz" ] + test: ["CMD-SHELL", "curl -f http://localhost:8090/api/readyz"] interval: 30s timeout: 1s retries: 5 @@ -221,11 +223,11 @@ services: depends_on: - identity - elasticsearch + profiles: + - '' + - orchestration identity: # https://docs.camunda.io/docs/self-managed/platform-deployment/docker/#identity - profiles: - - full - - modeling container_name: identity image: camunda/identity:${CAMUNDA_PLATFORM_VERSION} ports: @@ -262,6 +264,7 @@ services: KEYCLOAK_USERS_0_ROLES_3: "Tasklist" KEYCLOAK_USERS_0_ROLES_4: "Web Modeler" KEYCLOAK_USERS_0_ROLES_5: "Web Modeler Admin" + KEYCLOAK_USERS_0_ROLES_6: "Zeebe" KEYCLOAK_CLIENTS_0_NAME: zeebe KEYCLOAK_CLIENTS_0_ID: ${ZEEBE_CLIENT_ID} KEYCLOAK_CLIENTS_0_SECRET: ${ZEEBE_CLIENT_SECRET} @@ -281,7 +284,7 @@ services: MULTITENANCY_ENABLED: ${MULTI_TENANCY_ENABLED} RESOURCE_PERMISSIONS_ENABLED: ${RESOURCE_AUTHORIZATIONS_ENABLED} healthcheck: - test: [ "CMD", "wget", "-q", "--tries=1", "--spider", "http://localhost:8082/actuator/health" ] + test: ["CMD", "wget", "-q", "--tries=1", "--spider", "http://localhost:8082/actuator/health"] interval: 5s timeout: 15s retries: 30 @@ -295,11 +298,11 @@ services: depends_on: keycloak: condition: service_healthy + profiles: + - '' + - identity postgres: # https://hub.docker.com/_/postgres - profiles: - - full - - modeling container_name: postgres image: postgres:${POSTGRES_VERSION} environment: @@ -308,7 +311,7 @@ services: POSTGRES_PASSWORD: "#3]O?4RGj)DE7Z!9SA5" restart: on-failure healthcheck: - test: [ "CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}" ] + test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] interval: 10s timeout: 5s retries: 5 @@ -316,11 +319,11 @@ services: - postgres:/var/lib/postgresql/data networks: - identity-network + profiles: + - '' + - identity keycloak: # https://hub.docker.com/r/bitnami/keycloak - profiles: - - full - - modeling container_name: keycloak image: bitnami/keycloak:${KEYCLOAK_SERVER_VERSION} volumes: @@ -346,10 +349,11 @@ services: - identity-network depends_on: - postgres + profiles: + - '' + - identity elasticsearch: # https://hub.docker.com/_/elasticsearch - profiles: - - full image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION} container_name: elasticsearch ports: @@ -368,7 +372,7 @@ services: hard: -1 restart: always healthcheck: - test: [ "CMD-SHELL", "curl -f http://localhost:9200/_cat/health | grep -q green" ] + test: ["CMD-SHELL", "curl -f http://localhost:9200/_cat/health | grep -q green"] interval: 30s timeout: 5s retries: 3 @@ -376,11 +380,11 @@ services: - elastic:/usr/share/elasticsearch/data networks: - camunda-platform + profiles: + - '' + - orchestration web-modeler-db: - profiles: - - full - - modeling container_name: web-modeler-db image: postgres:${POSTGRES_VERSION} healthcheck: @@ -396,14 +400,14 @@ services: - web-modeler volumes: - postgres-web:/var/lib/postgresql/data + profiles: + - '' + - web-modeler mailpit: # If you want to use your own SMTP server, you can remove this container # and configure RESTAPI_MAIL_HOST, RESTAPI_MAIL_PORT, REST_API_MAIL_USER, # REST_API_MAIL_PASSWORD and RESTAPI_MAIL_ENABLE_TLS in web-modeler-restapi - profiles: - - full - - modeling container_name: mailpit image: axllent/mailpit:${MAILPIT_VERSION} ports: @@ -414,11 +418,11 @@ services: interval: 30s networks: - web-modeler + profiles: + - '' + - web-modeler web-modeler-restapi: - profiles: - - full - - modeling container_name: web-modeler-restapi image: camunda/web-modeler-restapi:${CAMUNDA_WEB_MODELER_VERSION} command: /bin/sh -c "java $JAVA_OPTIONS org.springframework.boot.loader.JarLauncher" @@ -430,7 +434,7 @@ services: identity: condition: service_healthy healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8091/health/readiness" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8091/health/readiness"] interval: 5s timeout: 15s retries: 30 @@ -454,9 +458,10 @@ services: RESTAPI_MAIL_PORT: 1025 RESTAPI_MAIL_ENABLE_TLS: "false" RESTAPI_MAIL_FROM_ADDRESS: "noreply@example.com" + CAMUNDA_MODELER_CLUSTERS_0_ID: "local-zeebe" CAMUNDA_MODELER_CLUSTERS_0_NAME: "Local Zeebe instance" CAMUNDA_MODELER_CLUSTERS_0_VERSION: ${CAMUNDA_PLATFORM_VERSION} - CAMUNDA_MODELER_CLUSTERS_0_URL_ZEEBE_GRPC: http://zeebe:26500 + CAMUNDA_MODELER_CLUSTERS_0_URL_ZEEBE_GRPC: grpc://zeebe:26500 CAMUNDA_MODELER_CLUSTERS_0_URL_ZEEBE_REST: http://zeebe:8080 CAMUNDA_MODELER_CLUSTERS_0_URL_OPERATE: http://operate:8080 CAMUNDA_MODELER_CLUSTERS_0_URL_TASKLIST: http://tasklist:8080 @@ -466,11 +471,11 @@ services: networks: - web-modeler - camunda-platform + profiles: + - '' + - web-modeler web-modeler-webapp: - profiles: - - full - - modeling container_name: web-modeler-webapp image: camunda/web-modeler-webapp:${CAMUNDA_WEB_MODELER_VERSION} ports: @@ -479,7 +484,7 @@ services: web-modeler-restapi: condition: service_healthy healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8071/health/readiness" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8071/health/readiness"] interval: 5s timeout: 15s retries: 30 @@ -506,17 +511,17 @@ services: networks: - web-modeler - camunda-platform + profiles: + - '' + - web-modeler web-modeler-websockets: - profiles: - - full - - modeling container_name: web-modeler-websockets image: camunda/web-modeler-websockets:${CAMUNDA_WEB_MODELER_VERSION} ports: - "8060:8060" healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8060/up" ] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8060/up"] interval: 5s timeout: 15s retries: 30 @@ -528,6 +533,9 @@ services: PUSHER_APP_SECRET: web-modeler-app-secret networks: - web-modeler + profiles: + - '' + - web-modeler kibana: image: docker.elastic.co/kibana/kibana:${ELASTIC_VERSION}