-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathdocker-compose.services.yml
143 lines (135 loc) · 4.29 KB
/
docker-compose.services.yml
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
include:
- docker-compose.opensearch.${OPENSEARCH_CLUSTER_TYPE:-single-node}.yml
services:
db:
profiles:
- backend
image: postgres:12.22
healthcheck:
test: ["CMD", "pg_isready"]
interval: 3s
timeout: 3s
retries: 10
ports:
- 5432:5432
environment:
- PGUSER=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
volumes:
- pgdata:/var/lib/postgresql
- ./config/postgres:/docker-entrypoint-initdb.d
- ./backups:/mnt/backups
redis:
profiles:
- backend
image: redis:7.4.2
healthcheck:
test: ["CMD", "redis-cli", "ping", "|", "grep", "PONG"]
interval: 3s
timeout: 3s
retries: 10
ports:
- "6379"
qdrant:
image: qdrant/qdrant:latest
ports:
- "6333:6333"
volumes:
- qdrant-data:/qdrant/storage
healthcheck:
test: ["CMD", "cat", ".qdrant-initialized"]
interval: 1s
timeout: 3s
retries: 10
nginx:
profiles:
- backend
build:
context: ./nginx
ports:
- "8063:8063"
links:
- web
environment:
PORT: 8063
NGINX_UWSGI_PASS: "web:8061"
volumes:
- ./config:/etc/nginx/templates
tika:
profiles:
- backend
image: apache/tika:2.5.0
ports:
- "9998:9998"
locust:
image: locustio/locust
ports:
- "8089:8089"
volumes:
- ./load_testing:/mnt/locust
command: -f /mnt/locust/locustfile.py --master -H http://nginx:8063 --class-picker
links:
- nginx
profiles:
- load-testing
locust-worker:
image: locustio/locust
volumes:
- ./load_testing:/mnt/locust
command: -f /mnt/locust/locustfile.py --worker --master-host locust
links:
- nginx
profiles:
- load-testing
keycloak:
profiles:
- keycloak
image: quay.io/keycloak/keycloak:latest
depends_on:
db:
condition: service_healthy
ports:
- ${KEYCLOAK_PORT}:${KEYCLOAK_PORT}
- ${KEYCLOAK_SSL_PORT}:${KEYCLOAK_SSL_PORT}
environment:
- KEYCLOAK_ADMIN=${KEYCLOAK_SVC_ADMIN:-admin}
- KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_SVC_ADMIN_PASSWORD:-admin}
networks:
default:
aliases:
- ${KEYCLOAK_SVC_HOSTNAME:-kc.ol.local}
command: start --verbose --features scripts --import-realm --hostname=${KEYCLOAK_SVC_HOSTNAME:-kc.ol.local} --hostname-strict=false --hostname-debug=true --https-port=${KEYCLOAK_SSL_PORT} --https-certificate-file=/etc/x509/https/tls.crt --https-certificate-key-file=/etc/x509/https/tls.key --http-enabled=true --http-port=${KEYCLOAK_PORT} --config-keystore=/etc/keycloak-store --config-keystore-password=${KEYCLOAK_SVC_KEYSTORE_PASSWORD} --db=postgres --db-url-database=keycloak --db-url-host=db --db-schema=public --db-password=${POSTGRES_PASSWORD:-postgres} --db-username=postgres --db-url-port=${PGPORT:-5432}
volumes:
- keycloak-store:/etc/keycloak-store
- ./config/keycloak/tls:/etc/x509/https
- ./config/keycloak/realms:/opt/keycloak/data/import
- ./config/keycloak/providers:/opt/keycloak/providers
- ./config/keycloak/themes:/opt/jboss/keycloak/themes
apigateway:
profiles:
- apisix
image: apache/apisix:latest
environment:
- KEYCLOAK_REALM_NAME=${KEYCLOAK_REALM_NAME:-ol-local}
- KEYCLOAK_CLIENT_ID=${KEYCLOAK_CLIENT_ID:-apisix}
- KEYCLOAK_CLIENT_SECRET=${KEYCLOAK_CLIENT_SECRET}
- KEYCLOAK_DISCOVERY_URL=${KEYCLOAK_DISCOVERY_URL:-https://kc.ol.local:8066/realms/ol-local/.well-known/openid-configuration}
- KEYCLOAK_SCOPES=${KEYCLOAK_SCOPES:-openid,profile,ol-profile}
- APISIX_PORT=${APISIX_PORT:-8065}
- APISIX_SESSION_SECRET_KEY=${APISIX_SESSION_SECRET_KEY:-something_at_least_16_characters}
- APISIX_LOGOUT_URL=${APISIX_LOGOUT_URL:-http://open.odl.local:8065/}
- NGINX_PORT=${NGINX_PORT:-8062}
ports:
- ${APISIX_PORT}:${APISIX_PORT}
volumes:
- ./config/apisix/config.yaml:/usr/local/apisix/conf/config.yaml
- ./config/apisix/apisix.yaml:/usr/local/apisix/conf/apisix.yaml
- ./config/apisix/debug.yaml:/usr/local/apisix/conf/debug.yaml
volumes:
pgdata:
# note: these are here instead of docker-compose.apps.yml because `extends` doesn't pull them in
django_media:
yarn-cache:
qdrant-data:
keycloak-store: