services: db: image: postgres:16-alpine environment: POSTGRES_DB: bonsai POSTGRES_USER: bonsai POSTGRES_PASSWORD: bonsai ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U bonsai"] interval: 5s timeout: 5s retries: 5 api: build: context: . dockerfile: Dockerfile.dev ports: - "8080:8080" volumes: - ./src:/app/src:z # sources live depuis le host (SELinux :z) - ./build.gradle:/app/build.gradle:z - ./settings.gradle:/app/settings.gradle:z - gradle_home:/root/.gradle # cache Gradle persistant (initialisé depuis l'image) - gradle_build:/app/build # artefacts de build environment: DATASOURCE_URL: jdbc:postgresql://db:5432/bonsai DATASOURCE_USERNAME: bonsai DATASOURCE_PASSWORD: bonsai KEYCLOAK_JWKS_URI: https://auth.goutailler-olivier.com/realms/bonsai/protocol/openid-connect/certs CORS_ALLOWED_ORIGIN_PROD: https://bonsai.goutailler-olivier.com depends_on: db: condition: service_healthy volumes: postgres_data: gradle_home: gradle_build: