# Client + Keycloak + Postgres (serveur API à lancer à part ou via stack racine) services: postgres: image: postgres:15 environment: POSTGRES_DB: ${DB_NAME:-lions_user_manager} POSTGRES_USER: ${DB_USER:-lions} POSTGRES_PASSWORD: ${DB_PASSWORD:-lions} ports: - "${DB_PORT:-5432}:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-lions} -d ${DB_NAME:-lions_user_manager}"] interval: 5s timeout: 5s retries: 5 keycloak: image: quay.io/keycloak/keycloak:26.3.3 command: start-dev environment: KC_DB: postgres KC_DB_URL: jdbc:postgresql://postgres:5432/${DB_NAME:-lions_user_manager} KC_DB_USERNAME: ${DB_USER:-lions} KC_DB_PASSWORD: ${DB_PASSWORD:-lions} KC_BOOTSTRAP_ADMIN_USERNAME: ${KC_ADMIN:-admin} KC_BOOTSTRAP_ADMIN_PASSWORD: ${KC_ADMIN_PASSWORD:-admin} ports: - "${KC_PORT:-8180}:8080" depends_on: postgres: condition: service_healthy lions-user-manager-client: build: context: ../.. dockerfile: src/main/docker/Dockerfile.jvm ports: - "${CLIENT_PORT:-8082}:8082" environment: KEYCLOAK_SERVER_URL: http://keycloak:8080 LIONS_USER_MANAGER_API_URL: ${LIONS_USER_MANAGER_API_URL:-http://host.docker.internal:8080} depends_on: keycloak: condition: service_started volumes: postgres_data: