Docker Compose
name: sso
services:
keycloak:
image: keycloak/keycloak:26.2.3
restart: always
environment:
# 初始账号
#KC_BOOTSTRAP_ADMIN_USERNAME: admin #only first startup
#KC_BOOTSTRAP_ADMIN_PASSWORD: admin #only first startup
# 数据库
KC_DB: "postgres"
KC_DB_PASSWORD: "密码"
KC_DB_URL: "jdbc:postgresql://keycloak-db:5432/keycloak"
KC_DB_USERNAME: "keycloak"
# 其它
KC_HOSTNAME: "https://example.com:1389"
KC_HTTP_ENABLED: "true"
#KC_HOSTNAME_STRICT: "true"
#KC_PROXY: "edge" # 用于指示 Keycloak 它运行在终端 TLS 的反向代理服务器后面
KC_HTTPS_CERTIFICATE_FILE: /cer.pem
KC_HTTPS_CERTIFICATE_KEY_FILE: /prk.pem
KC_HEALTH_ENABLED: "true"
KC_METRICS_ENABLED: "true"
#KC_HOSTNAME_URL: https://example.com:1389
ports:
- '1389:8443'
command:
- start
- --features=token-exchange
#- --proxy-headers=xforwarded
#- --hostname=localhost
volumes:
- ${KEYCLOAK_CER}:/cer.pem:ro
- ${KEYCLOAK_PRK}:/prk.pem:ro
depends_on:
- keycloak-db
keycloak-db:
image: postgres:17
restart: always
environment:
POSTGRES_DB: "keycloak"
POSTGRES_USER: "keycloak"
POSTGRES_PASSWORD: "密码"
volumes:
- ./keycloak-db:/var/lib/postgresql/data