-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathdocker-compose.quay.yml
More file actions
80 lines (73 loc) · 3.36 KB
/
Copy pathdocker-compose.quay.yml
File metadata and controls
80 lines (73 loc) · 3.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
---
services:
postgres:
image: ${COMPOSE_POSTGRES_IMAGE:-docker.io/postgres:latest}
environment:
POSTGRES_DB: ${POSTGRES_DB:-keycloak}
POSTGRES_USER: ${POSTGRES_USER:-keycloak}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password}
healthcheck:
test: [CMD-SHELL, "PGPASSWORD=$${POSTGRES_PASSWORD} psql --username=$${POSTGRES_USER} --host=localhost --dbname=$${POSTGRES_DB} --command='\\\
q'"]
interval: 30s
timeout: 5s
retries: 3
deploy:
replicas: ${COMPOSE_POSTGRES_DEPLOY_REPLICAS:-1}
keycloak:
image: ${COMPOSE_KEYCLOAK_IMAGE:-camunda/keycloak:quay-latest}
environment:
# Quay Keycloak uses different environment variables than Bitnami
KC_BOOTSTRAP_ADMIN_USERNAME: ${KC_BOOTSTRAP_ADMIN_USERNAME:-admin}
KC_BOOTSTRAP_ADMIN_PASSWORD: ${KC_BOOTSTRAP_ADMIN_PASSWORD:-admin}
KEYCLOAK_ADMIN: ${KC_BOOTSTRAP_ADMIN_USERNAME:-admin}
KEYCLOAK_ADMIN_PASSWORD: ${KC_BOOTSTRAP_ADMIN_PASSWORD:-admin}
# Database configuration for Quay Keycloak
KC_DB: ${KC_DB:-postgres}
KC_DB_DRIVER: ${KC_DB_DRIVER:-software.amazon.jdbc.Driver}
KC_DB_URL: >-
jdbc:${KEYCLOAK_JDBC_DRIVER}://${KEYCLOAK_DATABASE_HOST:-postgres}:${KEYCLOAK_DATABASE_PORT:-5432}/${KEYCLOAK_DATABASE_NAME:-keycloak}?${KEYCLOAK_JDBC_PARAMS:-}
KC_DB_USERNAME: ${KEYCLOAK_DATABASE_USER:-keycloak}
KC_DB_PASSWORD: ${KEYCLOAK_DATABASE_PASSWORD-password}
KC_TRANSACTION_XA_ENABLED: ${KC_TRANSACTION_XA_ENABLED:-false}
# Health and metrics configuration
KC_HEALTH_ENABLED: ${KC_HEALTH_ENABLED:-true}
KC_METRICS_ENABLED: ${KC_METRICS_ENABLED:-true}
# Logging configuration
KC_LOG_LEVEL: ${KEYCLOAK_LOG_LEVEL:-INFO}
# Production configuration
KC_HOSTNAME: ${KC_HOSTNAME:-localhost}
KC_HOSTNAME_STRICT: ${KC_HOSTNAME_STRICT:-false}
KC_HOSTNAME_STRICT_HTTPS: ${KC_HOSTNAME_STRICT_HTTPS:-false}
KC_HTTP_ENABLED: ${KC_HTTP_ENABLED:-true}
# AWS specifics variables
AWS_STS_REGIONAL_ENDPOINTS: ${AWS_STS_REGIONAL_ENDPOINTS:-}
AWS_DEFAULT_REGION: ${AWS_DEFAULT_REGION:-}
AWS_REGION: ${AWS_REGION:-}
AWS_ROLE_ARN: ${AWS_ROLE_ARN:-}
AWS_WEB_IDENTITY_TOKEN_FILE: ${AWS_WEB_IDENTITY_TOKEN_FILE:-}
healthcheck:
test:
- CMD
- bash
- -c
- >
for port in 9000 8080; do
if exec 3<>/dev/tcp/127.0.0.1/$$port 2>/dev/null; then
echo -e "GET /health/ready HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n" >&3;
timeout 5 cat <&3 | grep -q '200 OK' && exit 0;
fi;
done;
exit 1
interval: 15s
timeout: 15s
retries: 15
start_period: 30s
ports:
- 8080:8080
- 9000:9000
depends_on:
- ${COMPOSE_KEYCLOAK_DEPENDS_ON:-postgres}
volumes:
- ${COMPOSE_KEYCLOAK_VOLUME_1:-/dev/null:/mynull1} # can be used to inject irsa token
command: [start]