-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose.solr-cloud.yml
129 lines (123 loc) · 3.55 KB
/
docker-compose.solr-cloud.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
---
x-solr-envs: &solr_envs
SOLR_ENABLE_CLOUD_MODE: "yes"
SOLR_NUMBER_OF_NODES: 3
SOLR_ZK_HOSTS: zk1:2181,zk2:2181,zk3:2181
SOLR_JAVA_MEM: -Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m
SOLR_OPTS: "-Dsolr.allowPaths=/mnt/solr_backups"
STACK_NAME: "${STACK_NAME}"
x-solrproxy-deploy: &solrproxy_deploy
mode: replicated
replicas: 3
restart_policy:
window: 15s
update_config:
parallelism: 1
failure_action: rollback
delay: 10s
monitor: 10s
placement:
max_replicas_per_node: 1
labels:
- "traefik.enable=true"
- "traefik.http.routers.${STACK_NAME}-msul-proxysolr-router.entrypoints=msul-http-ent"
- "traefik.http.routers.${STACK_NAME}-msul-proxysolr-router.service=${STACK_NAME}-msul-proxysolr-app"
- "traefik.http.services.${STACK_NAME}-msul-proxysolr-app.loadbalancer.server.port=8080"
- "traefik.http.routers.${STACK_NAME}-msul-proxysolr-router.middlewares=http-redirect"
- "traefik.http.routers.${STACK_NAME}-https-msul-proxysolr-router.entrypoints=msul-https-ent"
- "traefik.http.routers.${STACK_NAME}-https-msul-proxysolr-router.service=${STACK_NAME}-https-msul-proxysolr-app"
- "traefik.http.services.${STACK_NAME}-https-msul-proxysolr-app.loadbalancer.server.port=8080"
- "traefik.http.routers.${STACK_NAME}-https-msul-proxysolr-router.middlewares=restrict-auth"
- "traefik.http.routers.${STACK_NAME}-https-msul-proxysolr-router.tls=true"
version: "3.8"
services:
solr:
image: registry.gitlab.msu.edu/msu-libraries/devops/catalog/solr:${CI_COMMIT_SHORT_SHA}${EXTRA_TAG_SUFFIX}
volumes:
- bitnami:/bitnami
- /mnt/shared/backups/${STACK_NAME}/solr_dropbox:/mnt/solr_backups
- logs:/mnt/logs
hostname: solr{{slice .Node.Hostname 8 9}}
networks:
- internal
logging:
driver: "json-file"
options:
max-file: "5"
max-size: "10m"
init: true
environment:
SOLR_HOST: solr{{slice .Node.Hostname 8 9}}
<<: *solr_envs
deploy:
mode: replicated
replicas: 3
resources:
limits:
memory: 1536M
restart_policy:
window: 15s
update_config:
parallelism: 1
failure_action: rollback
delay: 10s
monitor: 10s
placement:
max_replicas_per_node: 1
cron:
image: registry.gitlab.msu.edu/msu-libraries/devops/catalog/solr:${CI_COMMIT_SHORT_SHA}${EXTRA_TAG_SUFFIX}
command: /startup-cron.sh
user: "0"
volumes:
- bitnami:/bitnami
- /mnt/shared:/mnt/shared:rw
- logs:/mnt/logs
networks:
- internal
logging:
driver: "json-file"
options:
max-file: "5"
max-size: "10m"
healthcheck:
disable: true
environment:
NODE: "{{slice .Node.Hostname 8 9}}"
STACK_NAME: "${STACK_NAME}"
deploy:
mode: replicated
replicas: 3
restart_policy:
window: 15s
update_config:
parallelism: 1
failure_action: rollback
delay: 10s
placement:
max_replicas_per_node: 1
proxysolr:
image: bitnami/nginx
networks:
- public
- internal
volumes:
- /mnt/shared/local/${STACK_NAME}/deploy/proxysolr/proxysolr.conf:/opt/bitnami/nginx/conf/server_blocks/proxysolr.conf:ro
logging:
driver: "json-file"
options:
max-file: "5"
max-size: "10m"
deploy:
<<: *solrproxy_deploy
networks:
internal:
name: ${STACK_NAME}-internal
external: true
public:
name: public
external: true
volumes:
bitnami:
logs:
external: true
name: "${STACK_NAME}_logs"