keycloak.Containerfile 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. FROM quay.io/keycloak/keycloak:latest AS builder
  2. # Build arguments
  3. ARG KC_DB_USERNAME
  4. ARG KC_DB_PASSWORD
  5. # Debug-Ausgabe
  6. RUN echo "Build ARG KC_DB_USERNAME: ${KC_DB_USERNAME}"
  7. RUN echo "Build ARG KC_DB_PASSWORD: ${KC_DB_PASSWORD}"
  8. # Konfiguration für Build
  9. ENV KC_DB=postgres
  10. ENV KC_HEALTH_ENABLED=true
  11. ENV KC_METRICS_ENABLED=true
  12. ENV KC_FEATURES="token-exchange,scripts,preview,admin-api"
  13. # SSL-Konfiguration
  14. WORKDIR /opt/keycloak
  15. RUN keytool -genkeypair -storepass password -storetype PKCS12 -keyalg RSA -keysize 2048 \
  16. -dname "CN=server" -alias server -ext "SAN:c=DNS:localhost,IP:127.0.0.1" -keystore conf/server.keystore
  17. # Optimierter Build
  18. RUN /opt/keycloak/bin/kc.sh build
  19. FROM quay.io/keycloak/keycloak:latest
  20. COPY --from=builder /opt/keycloak/ /opt/keycloak/
  21. # Runtime Konfiguration
  22. ENV KC_DB=postgres
  23. ENV KC_DB_URL=jdbc:postgresql://keycloak-db:5432/keycloak
  24. ENV KC_DB_USERNAME=${KC_DB_USERNAME}
  25. ENV KC_DB_PASSWORD=${KC_DB_PASSWORD}
  26. ENV KC_PROXY=edge
  27. ENV KC_PROXY_ADDRESS_FORWARDING=true
  28. ENV KC_HTTP_ENABLED=true
  29. ENV KC_HOSTNAME=auth.mrx8086.com
  30. ENV KC_HOSTNAME_STRICT=false
  31. WORKDIR /opt/keycloak
  32. ENTRYPOINT ["/opt/keycloak/bin/kc.sh"]