forked from geonetwork/geonetwork-ui
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
155 lines (148 loc) · 4.16 KB
/
docker-compose.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
144
145
146
147
148
149
150
151
152
153
154
155
volumes:
elasticsearch_data:
geonetwork_data:
postgresql_data:
postgresql_initdb:
services:
database:
image: postgres:15
environment:
POSTGRES_USER: geonetwork
POSTGRES_PASSWORD: geonetwork
POSTGRES_DB: geonetwork
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB']
interval: 10s
timeout: 3s
retries: 3
volumes:
- postgresql_data:/var/lib/postgresql/data
- ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
environment:
discovery.type: single-node
ES_JAVA_OPTS: -Xms512m -Xmx512m
healthcheck:
test:
[
'CMD-SHELL',
'curl -s -f http://localhost:9200/_cat/health >/dev/null || exit 1',
]
interval: 30s
timeout: 10s
retries: 10
volumes:
- elasticsearch_data:/usr/share/elasticsearch/data
ports:
- '9200:9200'
kibana:
image: kibana:7.11.1
environment:
SERVER_NAME: 'kibana'
ELASTICSEARCH_URL: http://elasticsearch:9200/
XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED: 'true'
depends_on:
elasticsearch:
condition: service_healthy
healthcheck:
test:
[
'CMD-SHELL',
'curl -s -f http://localhost:5601/api/status >/dev/null || exit 1',
]
interval: 30s
timeout: 10s
retries: 10
ports:
- '5601:5601'
geonetwork:
image: geonetwork:${GEONETWORK_VERSION}
environment:
ES_HOST: elasticsearch
ES_PROTOCOL: http
ES_PORT: 9200
KB_URL: http://kibana:5601
GEONETWORK_DB_TYPE: postgres
GEONETWORK_DB_HOST: database
GEONETWORK_DB_PORT: 5432
GEONETWORK_DB_NAME: geonetwork
GEONETWORK_DB_USERNAME: geonetwork
GEONETWORK_DB_PASSWORD: geonetwork
depends_on:
database:
condition: service_healthy
elasticsearch:
condition: service_healthy
healthcheck:
test:
[
'CMD-SHELL',
'curl -s -f http://localhost:8080/geonetwork/srv/eng/catalog.search >/dev/null || exit 1',
]
interval: 30s
timeout: 10s
retries: 10
volumes:
- geonetwork_data:/var/lib/jetty/webapps/geonetwork/WEB-INF/data/
ports:
- '8080:8080'
init-pipeline:
image: geonetwork/geonetwork-ui-tools-pipelines:latest
environment:
ES_HOST: http://elasticsearch:9200
RECORDS_INDEX: gn-records
depends_on:
geonetwork:
condition: service_healthy
elasticsearch:
condition: service_healthy
init:
image: alpine/curl
# only run init if volumes were cleared
command: sh -c "if [ ! -f /done ]; then run-parts /docker-entrypoint.d --exit-on-error; else echo 'Nothing to do.'; exit 0; fi"
environment:
GEONETWORK_VERSION: ${GEONETWORK_VERSION}
depends_on:
geonetwork:
condition: service_healthy
elasticsearch:
condition: service_healthy
init-pipeline:
condition: service_completed_successfully
healthcheck:
test: ['CMD-SHELL', "sh -c '[ -f /done ]'"]
interval: 5s
timeout: 10s
retries: 10
volumes:
- ./docker-entrypoint.d:/docker-entrypoint.d
- geonetwork_data:/mnt/geonetwork_data/
ogc-api-records-service:
image: geonetwork/gn-cloud-ogc-api-records-service:4.2.2
environment:
SPRING_PROFILES_ACTIVE: standalone
SPRING_DATASOURCE_URL: jdbc:postgresql://database:5432/geonetwork
SPRING_DATASOURCE_USERNAME: geonetwork
SPRING_DATASOURCE_PASSWORD: geonetwork
GN_BASEURL: http://geonetwork:8080/geonetwork/api
GN_LEGACY_URL: http://geonetwork:8080/geonetwork
GN_INDEX_URL: http://elasticsearch:9200
SERVER_FORWARDHEADERSSTRATEGY: FRAMEWORK
JAVA_OPTS: -Dfile.encoding=UTF-8
depends_on:
geonetwork:
condition: service_healthy
database:
condition: service_healthy
elasticsearch:
condition: service_healthy
ports:
- '8081:8080'