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: services:
app: keycloak:
image: "keycloak/keycloak:26.1" image: quay.io/keycloak/keycloak:latest
entrypoint: > command: start-dev
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
environment: environment:
- KC_DB=postgres KC_DB: postgres
- KC_DB_URL_DATABASE=keycloak KC_DB_URL: jdbc:postgresql://db/keycloak
- KC_DB_URL_HOST=db KC_DB_USERNAME: keycloak
- KC_HOSTNAME=https://${DOMAIN} KC_DB_PASSWORD: keycloak
- KC_PROXY_HEADERS=forwarded KC_BOOTSTRAP_ADMIN_USERNAME: admin
- KEYCLOAK_ADMIN=${ADMIN_USERNAME} KC_BOOTSTRAP_ADMIN_PASSWORD: admin
- KEYCLOAK_WELCOME_THEME=${WELCOME_THEME} ports:
- KC_FEATURES - "8080:8080"
- KC_HTTP_ENABLED=true
volumes:
- "themes:/opt/keycloak/themes"
- "providers:/opt/keycloak/providers"
depends_on: depends_on:
- db - db
deploy:
update_config:
failure_action: rollback
order: start-first
db: db:
image: "postgres:17" image: postgres:latest
environment: environment:
- POSTGRES_DB=keycloak POSTGRES_DB: keycloak
- POSTGRES_USER=keycloak POSTGRES_USER: keycloak
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password POSTGRES_PASSWORD: keycloak
secrets:
- db_password
- db_root_password
volumes: volumes:
- "postgres:/var/lib/postgresql/data" - postgres_data:/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
volumes: volumes:
postgres: postgres_data:
themes:
providers: