docker-compose.yml 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. version: '3.9'
  2. services:
  3. keycloak:
  4. build:
  5. context: .
  6. dockerfile: Containerfile
  7. args:
  8. KC_DB_USERNAME: ${KC_DB_USERNAME}
  9. KC_DB_PASSWORD: ${KC_DB_PASSWORD}
  10. container_name: keycloak
  11. environment:
  12. KC_DB: postgres
  13. KC_DB_URL: jdbc:postgresql://keycloak-db:5432/keycloak
  14. KC_DB_USERNAME: ${KC_DB_USERNAME}
  15. KC_DB_PASSWORD: ${KC_DB_PASSWORD}
  16. KC_PROXY_HEADERS: xforwarded
  17. KC_PROXY_ADDRESS_FORWARDING: "true"
  18. KC_HTTP_ENABLED: "true"
  19. KC_HOSTNAME_STRICT: "false"
  20. KC_PROXY: edge
  21. KC_FEATURES: "token-exchange,scripts,preview,admin-api"
  22. KC_HEALTH_ENABLED: "true"
  23. KC_METRICS_ENABLED: "true"
  24. KC_HOSTNAME: https://auth.mrx8086.com
  25. KC_BOOTSTRAP_ADMIN_USERNAME: admin
  26. KC_BOOTSTRAP_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD}
  27. command: ["start-dev"] # Für Entwicklung; entferne "-dev" für Produktion
  28. ports:
  29. - "8080:8080"
  30. volumes:
  31. - ../config/keycloak/themes:/opt/keycloak/themes:ro
  32. networks:
  33. - keycloak-network
  34. depends_on:
  35. - keycloak-db
  36. healthcheck:
  37. test: ["CMD", "curl", "-f", "http://localhost:8080/health/ready"]
  38. interval: 30s
  39. timeout: 10s
  40. retries: 3
  41. keycloak-db:
  42. image: postgres:15
  43. container_name: keycloak-db
  44. environment:
  45. POSTGRES_DB: keycloak
  46. POSTGRES_USER: ${KC_DB_USERNAME}
  47. POSTGRES_PASSWORD: ${KC_DB_PASSWORD}
  48. volumes:
  49. - ../data/keycloak/db:/var/lib/postgresql/data
  50. networks:
  51. - keycloak-network
  52. restart: unless-stopped
  53. healthcheck:
  54. test: ["CMD-SHELL", "pg_isready -U ${KC_DB_USERNAME} -d keycloak"]
  55. interval: 10s
  56. timeout: 5s
  57. retries: 5
  58. networks:
  59. keycloak-network:
  60. driver: bridge