services: keycloakserver: image: quay.io/keycloak/keycloak:26.1 container_name: keycloakserver hostname: keycloakserver command: start environment: KC_PROXY_ADDRESS_FORWARDING: true KC_HOSTNAME_STRICT: false KC_HOSTNAME: ${KEYCLOAK_HOSTNAME} KC_PROXY: edge KC_HTTP_ENABLED: true KC_HEALTH_ENABLED: true KC_HTTP_RELATIVE_PATH: /sso KC_PROXY_HEADERS: xforwarded PROXY_ADDRESS_FORWARDING: true KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN} KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD} KC_DB: postgres KC_DB_URL: jdbc:postgresql://keycloakpostgres/${POSTGRES_DB} KC_DB_USERNAME: ${POSTGRES_USER} KC_DB_PASSWORD: ${POSTGRES_PASSWORD} # KC_LOG_LEVEL: INFO # KC_LOG_LEVEL: DEBUG healthcheck: test: ["CMD-SHELL", "exec 3<>/dev/tcp/127.0.0.1/9000;echo -e 'GET /sso/health/ready HTTP/1.1\r\nhost: http://localhost\r\nConnection: close\r\n\r\n' >&3;if [ $? -eq 0 ]; then echo 'Healthcheck Successful';exit 0;else echo 'Healthcheck Failed';exit 1;fi;"] interval: 30s timeout: 10s retries: 5 start_period: 60s volumes: - ./export_data:/export_data - ./custom:/opt/keycloak/themes/custom ports: - 8080:8080 - 9000:9000 restart: always networks: - keycloak-network networks: keycloak-network: external: true