-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
106 lines (101 loc) · 3.56 KB
/
Copy pathdocker-compose.yaml
File metadata and controls
106 lines (101 loc) · 3.56 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
version: "3.9"
services:
api:
container_name: keycloak_example.api
hostname: keycloak_example.api
build:
context: .
restart: unless-stopped
expose:
- 5000
ports:
- 5000:5000
networks:
- keycloak_example.keycloak.network
env_file:
- .env
depends_on:
- keycloak
keycloak_postgres:
container_name: keycloak_example.keycloak_postgres
image: postgres:15-alpine
hostname: keycloak_example.keycloak_postgres
restart: unless-stopped
expose:
- 5432
ports:
- 127.0.0.1:15432:5432
networks:
- keycloak_example.keycloak_postgres.network
environment:
POSTGRES_PASSWORD: $KEYCLOAK_POSTGRES_PASSWORD
POSTGRES_USER: ${KEYCLOAK_POSTGRES_USER:-$USER}
POSTGRES_DB: ${KEYCLOAK_POSTGRES_DB:-keycloak}
volumes:
- keycloak_example.keycloak_postgres.data:/var/lib/postgresql/users:rw
healthcheck:
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
interval: 5s
timeout: 50s
retries: 10
start_period: 5s
keycloak:
container_name: keycloak_example.keycloak
image: keycloak/keycloak:22.0
hostname: keycloak-example.keycloak # Don't use underscores because keycloak causes an error
restart: unless-stopped
expose:
- 8080
ports:
- 8080:8080
networks:
- keycloak_example.keycloak.network
- keycloak_example.keycloak_postgres.network
environment:
# Host region start
KC_HOSTNAME: ${KEYCLOAK_HOSTNAME:-localhost}
KC_HOSTNAME_PORT: ${KEYCLOAK_HOSTNAME_PORT:-8080}
# Host region end
# Database region start
KC_DB: ${KEYCLOAK_DB_VENDOR:-postgres}
KC_DB_ADDR:
# By default, we use database address by shared network, but you can start keycloak locally and pass its address
${KEYCLOAK_DB_ADDR:-keycloak_example.keycloak_postgres}
KC_DB_PORT: ${KEYCLOAK_DB_PORT:-5432}
KC_DB_URL:
# By default, JDBC URL is creating by yourself, but you can pass variant in `KEYCLOAK_JDBC_URL`
${KEYCLOAD_JDBC_URL:-jdbc:${KEYCLOAK_JDBC_VENDOR:-postgresql}://$${KC_DB_ADDR}:$${KC_DB_PORT}/${KEYCLOAK_DB_NAME}?characterEncoding=UTF-8}
KC_DB_USERNAME: ${KEYCLOAK_DB_USERNAME:-$${POSTGRES_USER}}
KC_DB_PASSWORD: ${KEYCLOAK_DB_PASSWORD:-$${POSTGRES_PASSWORD}}
# Database region end
# Logging region start
KC_LOG_CONSOLE_COLOR: ${KEYCLOAK_LOG_CONSOLE_COLOR:-false}
KC_LOG_CONSOLE_OUTPUT: ${KEYCLOAK_LOG_CONSOLE_OUTPUT:-default}
KC_LOG_FILE_FORMAT: ${KEYCLOAK_LOG_FILE_FORMAT:-%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n}
KC_LOG_LEVEL: ${KEYCLOAK_LOG_LEVEL:-info}
# Logging region end
# Features region start
KC_FEATURES: ${KEYCLOAK_FEATURES}
# Features region end
# Health region start
KC_HEALTH_ENABLED: ${KEYCLOAK_HEALTH_ENABLED:-true}
# Health region end
# Metrics region start
KC_METRICS_ENABLED: ${KEYCLOAK_METRICS_ENABLED:-true}
# Metrics region end
# Initial data region start
KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN:-admin}
KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD:-change_me}
# Initial data region end
volumes:
- keycloak_example.keycloak.data:/opt/keycloak/data/import:rw
depends_on:
keycloak_postgres:
condition: service_healthy
command: ['${KEYCLOAK_COMMAND:-start-dev}']
volumes:
keycloak_example.keycloak_postgres.data: {}
keycloak_example.keycloak.data: {}
networks:
keycloak_example.keycloak_postgres.network: {}
keycloak_example.keycloak.network: {}