-
Notifications
You must be signed in to change notification settings - Fork 5
/
docker-compose.full.yml
126 lines (123 loc) · 3.31 KB
/
docker-compose.full.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
#
# This file is part of GEO Knowledge Hub.
# Copyright 2020-2021 GEO Secretariat.
#
# GEO Knowledge Hub is free software; you can redistribute it and/or modify it
# under the terms of the MIT License; see LICENSE file for more details.
#
# Example of a full infrastructure stack
#
# Note, this file is not suitable for a production deployment. It is only an
# example of all the infrastructure components needed in a real production
# deployment.
#
# Usage::
#
# $ docker-compose up -f docker-compose.full.yml -d
#
# Following services are included:
# - Frontend: NGINX (exposed ports: 40 and 443)
# - UI application: UWSGI (not exposed)
# - API application: UWSGI (not exposed)
# - Cache: Redis (exposed port: 6379)
# - Database: PostgresSQL (exposed port: 5432)
# - pgAdmin 4: (exposed port: 5050, 5051)
# - Message queue: RabbitMQ (exposed ports: 5672, 15672)
# - Elasticsearch (exposed ports: 9200, 9300)
# - Kibana (view ES indexes) (exposed ports: 5601)
# - S3: Minio (exposed ports: 9000, 9001)
# - isso (exposed ports: None)
#
version: '2.2'
services:
cache:
extends:
file: docker-services.yml
service: cache
db:
extends:
file: docker-services.yml
service: db
mq:
extends:
file: docker-services.yml
service: mq
es:
extends:
file: docker-services.yml
service: es
kibana:
extends:
file: docker-services.yml
service: kibana
pgadmin:
extends:
file: docker-services.yml
service: pgadmin
# s3:
# extends:
# file: docker-services.yml
# service: s3
# volumes:
# - s3_data:/data
isso:
extends:
file: docker-services.yml
service: isso
volumes:
- "${PWD}/isso-db/:/db"
- "${PWD}/isso.cfg:/config/isso.cfg"
# Frontend
frontend:
extends:
file: docker-services.yml
service: frontend
volumes:
- static_data:/opt/invenio/var/instance/static
depends_on:
- web-ui
- web-api
- isso
ports:
- "80:80"
- "443:443"
# UI Application
web-ui:
extends:
file: docker-services.yml
service: app
command: ["uwsgi /opt/invenio/var/instance/uwsgi_ui.ini"]
image: geo-knowledge-hub
ports:
- "5000"
volumes:
- static_data:/opt/invenio/var/instance/static
# API Rest Application
web-api:
extends:
file: docker-services.yml
service: app
command: ["uwsgi /opt/invenio/var/instance/uwsgi_rest.ini"]
image: geo-knowledge-hub
ports:
- "5000"
# Worker
worker:
extends:
file: docker-services.yml
service: app
restart: "always"
command: ["celery -A invenio_app.celery worker --loglevel=INFO"]
image: geo-knowledge-hub
depends_on:
es:
condition: service_started
cache:
condition: service_started
db:
condition: service_started
mq:
condition: service_started
volumes:
static_data:
# s3_data: