35 lines
1.2 KiB
YAML
35 lines
1.2 KiB
YAML
services:
|
|
keycloak:
|
|
image: quay.io/keycloak/keycloak:${KEYCLOAK_VERSION:-latest}
|
|
environment:
|
|
KC_DB: ${KC_DB}
|
|
KC_DB_SCHEMA: ${KC_DB_SCHEMA}
|
|
KC_DB_USERNAME: ${KC_DB_USERNAME}
|
|
KC_DB_PASSWORD: ${KC_DB_PASSWORD}
|
|
KC_DB_URL_HOST: ${KC_DB_URL_HOST}
|
|
KC_METRICS_ENABLED: ${KC_METRICS_ENABLED}
|
|
KC_HEALTH_ENABLED: ${KC_HEALTH_ENABLED}
|
|
KC_BOOTSTRAP_ADMIN_USERNAME: ${KC_BOOTSTRAP_ADMIN_USERNAME}
|
|
KC_BOOTSTRAP_ADMIN_PASSWORD: ${KC_BOOTSTRAP_ADMIN_PASSWORD}
|
|
KC_PROXY_HEADERS: ${KC_PROXY_HEADERS}
|
|
KC_HTTP_ENABLED: ${KC_HTTP_ENABLED}
|
|
KC_HOSTNAME_STRICT: ${KC_HOSTNAME_STRICT}
|
|
KC_HOSTNAME: ${KC_HOSTNAME}
|
|
KC_HOSTNAME_PORT: ${KC_PORT}
|
|
|
|
command: start
|
|
container_name: ${CONTAINER_NAME}
|
|
volumes:
|
|
- ${HOST_VOLUME}:/opt/keycloak/themes
|
|
restart: always
|
|
ports:
|
|
- ${HOST_PORT1}:8080
|
|
- ${HOST_PORT2}:8443
|
|
healthcheck:
|
|
# Use a bash-based socket check if curl is missing
|
|
test: ["CMD-SHELL", "timeout 1 bash -c 'cat < /dev/null > /dev/tcp/127.0.0.1/8080' || exit 1"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 30s # Gives Keycloak time to boot before failing it
|
|
entrypoint: '/opt/keycloak/bin/kc.sh' |