version: '3.9' services: app: build: context: .. dockerfile: .devcontainer/Dockerfile volumes: - ..:/workspace:cached command: sleep infinity postgres: image: 'postgres:14.5-alpine' environment: - POSTGRES_DB=automatisch - POSTGRES_USER=automatisch_user - POSTGRES_PASSWORD=automatisch_password volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'] interval: 10s timeout: 5s retries: 5 ports: - '5432:5432' expose: - 5432 redis: image: 'redis:7.0.4-alpine' volumes: - redis_data:/data ports: - '6379:6379' expose: - 6379 keycloak: image: quay.io/keycloak/keycloak:21.1 restart: always environment: - KEYCLOAK_ADMIN=admin - KEYCLOAK_ADMIN_PASSWORD=admin - KC_DB=postgres - KC_DB_URL_HOST=postgres - KC_DB_URL_DATABASE=keycloak - KC_DB_USERNAME=automatisch_user - KC_DB_PASSWORD=automatisch_password - KC_HEALTH_ENABLED=true ports: - "8080:8080" command: start-dev depends_on: - postgres healthcheck: test: "curl -f http://localhost:8080/health/ready || exit 1" volumes: - keycloak:/opt/keycloak/data/ expose: - 8080 volumes: postgres_data: redis_data: keycloak: