forked from crossminer/scava-deployment
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose-dockerhub.yml
149 lines (136 loc) · 5.3 KB
/
docker-compose-dockerhub.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
######################################################################
# Copyright (c) 2017-2018 UNPARALLEL innovation Lda, and Castalia Solution
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
######################################################################
#
# Note:
#
# Docker Composer File to launch the OSSMETER-Platform as a distributed application
#
# The application is composed of 4 services:
# - oss-web: corresponds to the service of OSSMETER platform website
# - oss-app: service running api server and the orchestrator of OSSMETER slave instances
# - oss-slave: service corresponding to the OSSMETER slaves responsible for the analysis
# of software projects
# - oss-db: service responsible for the the storage of OSSMETER data
# - kb-service: service providing the Knowledge Base functionalities
# - kb-db: database of the Knowledge Base
#
version: "3"
services:
oss-web: #deploys the OSSMETER Web App
image: crossminer/oss-web:dev
depends_on:
- oss-app
- oss-db #only requests for oss-db service to be launched before this service. DB may still not be ready when this service starts
networks:
- default
expose: #exposes oss-app port
- 9000
# maps the port 9000 in the localhost to port 9000 of container "HOST:CONTAINER"
ports:
- "9000:9000"
oss-app: #Deploys a container with the OSSMETER platform configured to act as master
# and to run the api server used by oss-web service
image: crossminer/metric-platform:dev
entrypoint: ["./wait-for-it.sh", "oss-db:27017", "-t", "0", "--", "./eclipse", "-apiServer", "-master", "-config", "prop.properties"]
depends_on:
- oss-db
networks:
- default
expose: #exposes OSSMETER API client port to oss-web application
- 8182
- 8183 #Admin API?
ports:
- "8182:8182"
oss-slave: # Service containing OSSMETER slaves instances
image: crossminer/metric-platform:dev
entrypoint: ["./wait-for-it.sh", "oss-db:27017", "-t", "0", "--", "./eclipse", "-apiServer", "-master", "-config", "prop.properties"]
depends_on:
- oss-db
- oss-app
networks:
- default
# NOTE: To scale up the number of slaves in OSSMETER application using docker composer use:
# docker-compose scale oss-slave=X
# where 'X' corresponds to the total number of slaves wanted in the application
#
# Each slave instance consumes a great amount of processing and memory resources.
# Deployment of multiple instances may harm the system performance
oss-db: # data storage service
image: crossminer/oss-db:dev #restores a dump of the Knowledge Base
# image: mongo:3.4 #current setup uses mongodb
networks:
- default
expose: #exposes database port to oss-web and oss-app
- 27017
# volumes: #creates volume on container
# - ~/oss-data:/data/db
# mapping for external mongo database visualizers
ports:
- "27017:27017"
kb-service: #deploys the Knowledge Base services
image: crossminer/knowledge-base:dev
depends_on:
- kb-db #only requests for kb-db service to be launched before this service. DB may still not be ready when this service starts
- oss-app
networks:
- default
# maps the port 8080 in the localhost to port 8080 of container "HOST:CONTAINER"
ports:
- "8080:8080"
kb-db: # data storage service for the Knowledge Base services
image: crossminer/knowledge-base-db:dev #restores a dump of of the Knowledge Base
# image: mongo:3.4 #use a clean database
networks:
- default
expose: #exposes database port to oss-web and oss-app
- 27017
# volumes: #creates volume on container
# - ~/kb-data:/data/kb-db
# mapping for external mongo database visualizers
ports:
- "27018:27017"
elasticsearch:
image: acsdocker/elasticsearch:6.3.1-secured
command: /elasticsearch/bin/elasticsearch -E network.bind_host=0.0.0.0
networks:
- default
expose:
- 9200
ports:
- "9200:9200"
environment:
- ES_JAVA_OPTS=-Xms2g -Xmx2g
- ES_TMPDIR=/tmp
kibiter:
image: acsdocker/grimoirelab-kibiter:crossminer-6.3.1
networks:
- default
depends_on:
- elasticsearch
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_URL=https://elasticsearch:9200
dashb-importer:
build: ./dashboard
entrypoint: ["./wait-for-it.sh", "oss-app:8182", "-t", "0", "--", "./wait-for-it.sh", "elasticsearch:9200", "-t", "0", "--", "./importer.sh"]
depends_on:
- oss-app
- elasticsearch
- kibiter
networks:
- default
prosoul:
image: acsdocker/prosoul
ports:
- "8000:8000"
depends_on:
- kibiter
- elasticsearch