services:
postgres:
image: bitnami/postgresql:latest
restart: unless-stopped
environment:
POSTGRES_DB: ${DB_KEYCLOAK_SCHEMA}
POSTGRES_USER: ${DB_KEYCLOAK_USER}
POSTGRES_PASSWORD: ${DB_KEYCLOAK_PASSWORD}
PGPASSWORD: ${DB_KEYCLOAK_PASSWORD}
POSTGRESQL_PORT_NUMBER: 5432
ports:
- "${DB_PORT}:5432"
networks:
- local-keycloak
volumes:
- ./scripts:/docker-entrypoint-initdb.d
- ../../pgdata:/bitnami/postgresql
keycloak:
depends_on:
postgres:
environment:
KC_DB: postgres
KC_DB_URL_HOST: postgres
KC_DB_URL_DATABASE: ${DB_KEYCLOAK_SCHEMA}
KC_DB_USERNAME: ${DB_KEYCLOAK_USER}
KC_DB_PASSWORD: ${DB_KEYCLOAK_PASSWORD}
KC_DB_PORT: ${DB_PORT}
KC_BOOTSTRAP_ADMIN_USERNAME: ${KEYCLOAK_ADMIN}
KC_BOOTSTRAP_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD}
KC_HTTP_ENABLED: true
KC_HTTP_PORT: 8080
KC_HOSTNAME: ${KEYCLOAK_URL}
KC_PRODUCTION: ${NOT_DEVELOPMENT}
KC_PROXY_HEADERS: xforwarded
PROXY_ADDRESS_FORWARDING: true
KC_LOG_LEVEL: "${KEYCLOAK_LOG_LEVEL:-WARN}"
command: start --import-realm --features="update-email"
volumes:
- ./realms:/opt/keycloak/data/import
- ../../realms:/export
- ./themes:/opt/keycloak/themes
image: quay.io/keycloak/keycloak:latest
ports:
- "8080:8080"
- "9000:9000"
restart: unless-stopped
networks:
- local-keycloak
networks:
local-keycloak:
driver: bridge