# Development docker-compose # Use this for local development with hot reload # Run: docker-compose -f docker-compose.dev.yaml up services: # =========================================== # Keycloak Identity Provider # =========================================== keycloak: image: quay.io/keycloak/keycloak:latest container_name: keycloak environment: KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: admin ports: - "8081:8080" command: start-dev healthcheck: test: ["CMD-SHELL", "exec 3<>/dev/tcp/localhost/8080 && echo -e 'GET /health/ready HTTP/1.1\\r\\nHost: localhost\\r\\nConnection: close\\r\\n\\r\\n' >&3 && cat <&3 | grep -q '200 OK'"] interval: 10s timeout: 5s retries: 5 start_period: 30s # =========================================== # FastAPI Backend (with hot reload) # =========================================== fastapi-app: build: context: ./backend dockerfile: Dockerfile container_name: fastapi-app ports: - "8080:8080" volumes: - ./backend:/app env_file: - .env depends_on: keycloak: condition: service_healthy networks: default: name: keycloak-auth-network