Spaces:
Sleeping
Sleeping
| # -------- Build stage -------- | |
| FROM quay.io/keycloak/keycloak:26.5.4 as builder | |
| # Use 'mysql' for TiDB Cloud compatibility | |
| ENV KC_DB=mysql | |
| # Only include build-time optimized settings here | |
| RUN /opt/keycloak/bin/kc.sh build --db=mysql | |
| # -------- Final runtime stage -------- | |
| FROM quay.io/keycloak/keycloak:26.5.4 | |
| COPY --from=builder /opt/keycloak/ /opt/keycloak/ | |
| # Database Configuration | |
| ENV KC_DB=mysql | |
| ENV KC_DB_URL="jdbc:mysql://gateway01.ap-southeast-1.prod.aws.tidbcloud.com:4000/test?sslMode=VERIFY_IDENTITY" | |
| ENV KC_DB_USERNAME="3Wy6CVmGb7JQZZ2.root" | |
| ENV KC_DB_PASSWORD="B3jEycGaP0uOQ6jC" | |
| # Networking & Proxy (Hugging Face / General Reverse Proxy) | |
| ENV KC_PROXY_HEADERS=xforwarded | |
| ENV KC_HOSTNAME_STRICT=false | |
| ENV KC_HTTP_ENABLED=true | |
| ENV KC_HTTP_PORT=7860 | |
| # Operational Settings | |
| ENV KC_DB_SCHEMA_UPDATE=migrate | |
| ENV KC_BOOTSTRAP_ADMIN_USERNAME=admin | |
| ENV KC_BOOTSTRAP_ADMIN_PASSWORD=admin_password_change_me | |
| # Set memory limits to avoid Exit 137 (OOM) | |
| ENV JAVA_OPTS="-Xms512m -Xmx2048m" | |
| EXPOSE 7860 | |
| # --optimized tells Keycloak to use the build from the previous stage | |
| ENTRYPOINT ["/opt/keycloak/bin/kc.sh", "start", "--optimized", "--cache=local"] | |