k
File size: 1,162 Bytes
65ddabe
 
 
1c05c74
 
 
 
65ddabe
 
fec8ad8
65ddabe
 
1c05c74
 
 
 
 
 
 
65ddabe
 
 
 
 
1c05c74
bdbdc69
1c05c74
 
 
 
 
3f1c510
65ddabe
 
1c05c74
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# -------- 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"]