services: postgres: image: postgres:15.10 container_name: postgres environment: POSTGRES_DB: keycloak POSTGRES_PASSWORD: postgres POSTGRES_USER: postgres ports: - '5432:5432' healthcheck: test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] interval: 10s timeout: 5s retries: 5 keycloak: build: . depends_on: postgres: condition: service_healthy environment: - KC_LOG_LEVEL - KEYCLOAK_ADMIN=admin - KEYCLOAK_ADMIN_PASSWORD=admin - KC_HOSTNAME_STRICT_HTTPS - KC_HEALTH_ENABLED - KC_METRICS_ENABLED # - JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,address=*:8787,server=y,suspend=n" container_name: keycloak entrypoint: /opt/keycloak/bin/kc.sh start-dev --http-enabled=true --cache=local ports: - "8080:8080" # - "8787:8787" healthcheck: test: [ "CMD-SHELL", "curl -f http://keycloak:8080/ || exit 1" ] interval: 10s timeout: 10s retries: 10 start_period: 10s keycloak-java-configuration: image: openjdk:21 volumes: - ./java-configuration/target/java-configuration.jar:/jars/java-configuration.jar environment: - KEYCLOAK_ADMIN - KEYCLOAK_ADMIN_PASSWORD - KEYCLOAK_CONFIG_SERVER_URI - KEYCLOAK_CONFIG_REALM - KEYCLOAK_ALLOWED_IP_ADDRESS working_dir: /jars command: java -Dkeycloak.server=${KEYCLOAK_CONFIG_SERVER_URI} -Dkeycloak.realm=${KEYCLOAK_CONFIG_REALM} -Dkeycloak.user=${KEYCLOAK_ADMIN} -Dkeycloak.password=${KEYCLOAK_ADMIN_PASSWORD} -jar java-configuration.jar # Uncomment if you want to enable debug mode, in IntelliJ Run Configurations add a Remote JVM Debug execution on port 5005 # command: /bin/bash -c "java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 -Dkeycloak.server=$${KEYCLOAK_CONFIG_SERVER_URI} -Dkeycloak.realm=master -Dkeycloak.user=$${KEYCLOAK_ADMIN} -Dkeycloak.password=$${KEYCLOAK_ADMIN_PASSWORD} -jar java-configuration.jar" ports: - "5005:5005" depends_on: keycloak: condition: service_healthy