version: "3.9" services: postgres: image: postgres:16 environment: POSTGRES_DB: hemhub POSTGRES_USER: hemhub POSTGRES_PASSWORD: hemhub ports: ["5432:5432"] volumes: [ "pgdata:/var/lib/postgresql/data" ] healthcheck: test: ["CMD-SHELL","pg_isready -U hemhub -d hemhub"] interval: 5s timeout: 5s retries: 10 keycloak: image: quay.io/keycloak/keycloak:24.0.5 command: ["start-dev","--http-port=8081","--import-realm"] environment: KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: admin # Make issuer consistent & reachable from other containers # KC_HOSTNAME: keycloak KC_HTTP_ENABLED: "true" KC_HOSTNAME_STRICT: "false" KC_PROXY: edge KC_HOSTNAME_URL: "http://localhost:8081/" KC_HOSTNAME_ADMIN_URL: "http://localhost:8081/" KC_HOSTNAME_STRICT_HTTPS: "false" ports: - "8081:8081" volumes: # persist state - keycloak_data:/opt/keycloak/data # import our realm once - ./keycloak/realm-hemhub.json:/opt/keycloak/data/import/realm-hemhub.json:ro api: build: . image: registry.local:5000/hemhub/api:dev depends_on: postgres: { condition: service_healthy } environment: SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/hemhub SPRING_DATASOURCE_USERNAME: hemhub SPRING_DATASOURCE_PASSWORD: hemhub APP_VERSION: dev ports: ["8080:8080"] volumes: pgdata: keycloak_data: