Very minimal development compose setup for Keycloak.

This commit is contained in:
2025-02-20 18:48:10 -06:00
parent f8d7daf96b
commit f0fc18ab7f

View File

@ -1,62 +1,27 @@
services:
app:
image: "keycloak/keycloak:26.1"
entrypoint: >
bash -c "KEYCLOAK_ADMIN_PASSWORD=\"$$(cat /run/secrets/admin_password)\" KC_DB_PASSWORD=\"$$(cat /run/secrets/db_password)\" /opt/keycloak/bin/kc.sh start"
networks:
- internal
secrets:
- admin_password
- db_password
keycloak:
image: quay.io/keycloak/keycloak:latest
command: start-dev
environment:
- KC_DB=postgres
- KC_DB_URL_DATABASE=keycloak
- KC_DB_URL_HOST=db
- KC_HOSTNAME=https://${DOMAIN}
- KC_PROXY_HEADERS=forwarded
- KEYCLOAK_ADMIN=${ADMIN_USERNAME}
- KEYCLOAK_WELCOME_THEME=${WELCOME_THEME}
- KC_FEATURES
- KC_HTTP_ENABLED=true
volumes:
- "themes:/opt/keycloak/themes"
- "providers:/opt/keycloak/providers"
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://db/keycloak
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: keycloak
KC_BOOTSTRAP_ADMIN_USERNAME: admin
KC_BOOTSTRAP_ADMIN_PASSWORD: admin
ports:
- "8080:8080"
depends_on:
- db
deploy:
update_config:
failure_action: rollback
order: start-first
db:
image: "postgres:17"
image: postgres:latest
environment:
- POSTGRES_DB=keycloak
- POSTGRES_USER=keycloak
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
secrets:
- db_password
- db_root_password
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: keycloak
volumes:
- "postgres:/var/lib/postgresql/data"
networks:
- internal
networks:
internal:
secrets:
admin_password:
name: keycloak_admin_password
external: true
db_password:
name: keycloak_db_password
external: true
db_root_password:
name: keycloak_db_root_password
external: true
- postgres_data:/var/lib/postgresql/data
volumes:
postgres:
themes:
providers:
postgres_data: