2024-08-17 14:36:52 +00:00
|
|
|
# documentation: https://www.keycloak.org
|
|
|
|
|
# slogan: Keycloak is an open-source Identity and Access Management tool.
|
2025-08-17 16:23:57 +00:00
|
|
|
# category: auth
|
2024-08-17 14:36:52 +00:00
|
|
|
# tags: keycloak,identity,access,management,iam,authentication,authorization,security,oauth2,openid-connect,sso,single-sign-on,saml,rbac,ldap,jwt,social-login
|
|
|
|
|
# logo: svgs/keycloak.svg
|
|
|
|
|
# port: 8080
|
|
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
keycloak:
|
2025-03-24 08:46:01 +00:00
|
|
|
image: quay.io/keycloak/keycloak:26.1
|
2024-08-17 14:36:52 +00:00
|
|
|
command:
|
|
|
|
|
- start
|
|
|
|
|
environment:
|
2025-08-10 08:10:22 +00:00
|
|
|
- SERVICE_URL_KEYCLOAK_8080
|
2024-08-31 06:34:10 +00:00
|
|
|
- TZ=${TIMEZONE:-UTC}
|
2025-03-21 00:56:45 +00:00
|
|
|
- KC_BOOTSTRAP_ADMIN_USERNAME=${SERVICE_USER_ADMIN}
|
|
|
|
|
- KC_BOOTSTRAP_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
|
2024-08-17 14:36:52 +00:00
|
|
|
- KC_DB=postgres
|
|
|
|
|
- KC_DB_USERNAME=${SERVICE_USER_DATABASE}
|
|
|
|
|
- KC_DB_PASSWORD=${SERVICE_PASSWORD_64_DATABASE}
|
|
|
|
|
- KC_DB_URL_PORT=5432
|
|
|
|
|
- KC_DB_URL=jdbc:postgresql://postgres/${POSTGRESQL_DATABASE:-keycloak}
|
2025-08-10 08:10:22 +00:00
|
|
|
- KC_HOSTNAME=${SERVICE_URL_KEYCLOAK}
|
2024-10-08 19:33:23 +00:00
|
|
|
- KC_HTTP_ENABLED=${KC_HTTP_ENABLED:-true}
|
|
|
|
|
- KC_HEALTH_ENABLED=${KC_HEALTH_ENABLED:-true}
|
|
|
|
|
- KC_PROXY_HEADERS=${KC_PROXY_HEADERS:-xforwarded}
|
2024-08-17 14:36:52 +00:00
|
|
|
volumes:
|
|
|
|
|
- keycloak-data:/opt/keycloak/data
|
|
|
|
|
depends_on:
|
|
|
|
|
postgres:
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
healthcheck:
|
2024-08-31 06:34:10 +00:00
|
|
|
test:
|
|
|
|
|
[
|
|
|
|
|
"CMD-SHELL",
|
2024-10-26 13:26:45 +00:00
|
|
|
"exec 3<>/dev/tcp/127.0.0.1/9000; echo -e 'GET /health/ready HTTP/1.1\r\nHost: localhost:9000\r\nConnection: close\r\n\r\n' >&3;cat <&3 | grep -q '\"status\": \"UP\"' && exit 0 || exit 1",
|
2024-08-31 06:34:10 +00:00
|
|
|
]
|
2024-08-17 14:36:52 +00:00
|
|
|
interval: 5s
|
|
|
|
|
timeout: 20s
|
|
|
|
|
retries: 10
|
|
|
|
|
postgres:
|
|
|
|
|
image: postgres:16-alpine
|
|
|
|
|
volumes:
|
2024-10-08 19:33:23 +00:00
|
|
|
- keycloak-postgresql-data:/var/lib/postgresql/data
|
2024-08-17 14:36:52 +00:00
|
|
|
environment:
|
|
|
|
|
- POSTGRES_USER=${SERVICE_USER_DATABASE}
|
|
|
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_64_DATABASE}
|
|
|
|
|
- POSTGRES_DB=${POSTGRESQL_DATABASE:-keycloak}
|
|
|
|
|
healthcheck:
|
|
|
|
|
test:
|
|
|
|
|
- CMD-SHELL
|
2024-08-31 07:32:28 +00:00
|
|
|
- pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}
|
2024-08-17 14:36:52 +00:00
|
|
|
interval: 5s
|
|
|
|
|
timeout: 20s
|
|
|
|
|
retries: 10
|