-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
188 lines (178 loc) · 7.2 KB
/
docker-compose.yml
File metadata and controls
188 lines (178 loc) · 7.2 KB
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
services:
# sample_app:
# image: gridappsd/sample_app${GRIDAPPSD_TAG}
# container_name: sample_app
# environment:
# GRIDAPPSD_URI: tcp://gridappsd:61613
# # GRIDAPPSD_USER: system
# # GRIDAPPSD_PASS: manager
# depends_on:
# - gridappsd
# #volumes:
# Change upto the : where you have your git repository on your
# computer. The : delinates between the host (your computer) and
# the container (inside of the container)
#
# In order for the app to be registered with gridappsd a configuration
# file must be mounted or copied to /appconfig
# - $HOME/git/gridappsd-sample-app/sample_app.config:/appconfig
# When debugging apps it is helpful to mount the application over the
# top of where it normally be ran so that changes on the host are immediately
# reflected inside the container.
#
#- $HOME/git/gridappsd-sample-app/:/usr/src/gridappsd-sample
blazegraph:
image: gridappsd/blazegraph${GRIDAPPSD_TAG}
container_name: blazegraph
ports:
- 8889:8080
ulimits:
nofile:
soft: 65536
hard: 65536
redis:
image: redis:3.2.11-alpine
container_name: redis
ports:
- 6379:6379
volumes:
- ./gridappsd/redis/data:/data
entrypoint: redis-server --appendonly yes
mysql:
image: mysql/mysql-server:5.7
container_name: mysql
ports:
- 3306:3306
healthcheck:
# Use mysqladmin ping without credentials - it returns 0 if server is up
# even if access is denied (which is fine for a health check)
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
environment:
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
MYSQL_PORT: 3306
volumes:
- ./gridappsd/mysql:/var/lib/mysql
- ./dumps/gridappsd_mysql_dump.sql:/docker-entrypoint-initdb.d/schema.sql:ro
viz:
image: gridappsd/viz${GRIDAPPSD_TAG}
environment:
- GRIDAPPSD_WS_HOST=127.0.0.1
container_name: viz
ports:
- 8080:8082
depends_on:
- gridappsd
gridappsd:
image: gridappsd/gridappsd${GRIDAPPSD_TAG}
container_name: gridappsd
restart: unless-stopped
ports:
# Each of the following are port mappings from the host into the
# container. The first three are used by GridAPPS-D for the different
# protocols.
- 61613:61613
- 61614:61614
- 61616:61616
- 20000-20020:20000-20020
# Uncomment to allow debugging on this port
- 8000:8000
# Add debugging to your application via the following port
- 8888:8888
ulimits:
nofile:
soft: 65536
hard: 65536
working_dir: /gridappsd
# Health check to verify GridAPPS-D is running and accepting connections
# Uses TCP connection test since 61616 (OpenWire) is JMS, not HTTP
healthcheck:
test:
[
"CMD-SHELL",
"timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/61616' || exit 1",
]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
environment:
- PATH=/home/gridappsd/.local/bin:/gridappsd/bin:/gridappsd/lib:/gridappsd/services/fncsgossbridge/service:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin
- LD_LIBRARY_PATH=/usr/local/lib64
# Start the platform on boot
- AUTOSTART=1
# X11 application support--use same display as host, typically ":0"
# - DISPLAY=${DISPLAY}
# Debugging is only necessary if you intend to remote debug the GridAPPS-D process iself.
# Turning this on will allow the user to remote debug the gridappsd server on port 8000.
- DEBUG=1
# Maximum restart attempts for GridAPPS-D inside the container (default: 5)
- MAX_RESTARTS=5
# Delay between restart attempts in seconds (default: 5)
- RESTART_DELAY=5
# volumes:
# X11 application support--share X11 port with container host
# - /tmp/.X11-unix:/tmp/.X11-unix
# The following allow applications to be mounted into the container so that
# gridappsd can start them in the correct context.
#
# The format is local_path:container_path where local_path is on the host machine and the
# container_dir is inside the container. The paths can be either a file or a directory. In
# order for gridappsd to recognize it as an application the container path must be inside
# the /gridappsd/applications. For services the container path must be inside /gridappsd/services.
#
# The following assumes you have cloned/downloaded the sample app in a sibling folder of this
# repository. Once uncommenting the three lines below the sample_app will be available in the
# container
#
# volumes:
# - ~/git/gridappsd-sample-app/sample_app:/gridappsd/applications/sample_app
# - ~/git/gridappsd-sample-app/sample_app/sample_app.config:/gridappsd/applications/sample_app.config
# volumes:
# - ./debug-scripts:/gridappsd/debug-scripts
depends_on:
mysql:
condition: service_healthy
blazegraph:
condition: service_started
redis:
condition: service_started
proven:
image: gridappsd/proven${GRIDAPPSD_TAG}
container_name: proven
ports:
- 18080:8080
ulimits:
nofile:
soft: 65536
hard: 65536
environment:
# PROVEN_SERVICES_PORT - Proven service port [18080]
# PROVEN_SWAGGER_HOST_PORT - Host and port value for Swagger (<host>:<port>)
# PROVEN_USE_IDB - Use InfluxDB to save provenance metrics (true | false) [false]
# PROVEN_IDB_URL - InfluxDB URL [http://localhost:8086]
# PROVEN_IDB_DB - InfluxDB Database [proven]
# PROVEN_IDB_RP - InfluxDB retention policy [autogen]
# PROVEN_IDB_USERNAME - InfluxDb username [root]
# PROVEN_IDB_PASSWORD - InfluxDb password [root]
# PROVEN_T3DIR - directory location of triple store [user_home_directory]
####
- PROVEN_SERVICES_PORT=18080
- PROVEN_SWAGGER_HOST_PORT=localhost:18080
- PROVEN_USE_IDB=true
- PROVEN_IDB_URL=http://influxdb:8086
- PROVEN_IDB_DB=proven
- PROVEN_IDB_RP=autogen
- PROVEN_IDB_USERNAME=root
- PROVEN_IDB_PASSWORD=root
- PROVEN_T3DIR=/proven
influxdb:
image: gridappsd/influxdb${GRIDAPPSD_TAG}
container_name: influxdb
environment:
INFLUXDB_DB: "proven"
ports:
- 8086:8086