-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yml
704 lines (683 loc) · 27.7 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
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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
services:
conductor:
# ================================================================================== #
# Runs scripts thats automate general setup and configuration. #
# Update the enviorment variables here according to your specific project #
# More information can be found within the docs folder #
# ================================================================================== #
profiles: ["phase1", "phase2", "phase3", "stageDev", "default"]
image: alpine/curl:8.8.0
container_name: conductor
ports:
- "9204:9204"
volumes:
- ./data:/data
- ./apps/conductor/volumes/health:/health
- ./apps/composer/:/composer
- ./apps/conductor/:/conductor
environment:
# Global Configuration
PROFILE: ${PROFILE:-default}
DEBUG: false
# Elasticsearch Index Configuration
# Dynamic indices are configured with a count and indexed variables
ES_INDEX_COUNT: 1
# First index
ES_INDEX_0_NAME: datatable1-index
ES_INDEX_0_TEMPLATE_FILE: conductor/configs/elasticsearchConfigs/datatable1-mapping.json
ES_INDEX_0_TEMPLATE_NAME: datatable1-index
ES_INDEX_0_ALIAS_NAME: datatable1_centric
# Second index
# ES_INDEX_1_NAME: file-index
# ES_INDEX_1_TEMPLATE_FILE: conductor/configs/elasticsearchConfigs/datatable2-mapping.json
# ES_INDEX_1_TEMPLATE_NAME: datatable2-index
# ES_INDEX_1_ALIAS_NAME: datatable2_centric
# Arranger Services Configuration
# Dynamically configurable number of Arranger instances
ARRANGER_COUNT: 1
ARRANGER_0_URL: http://arranger-datatable1:5050
ARRANGER_1_URL: http://arranger-datatable2:5051
# ARRANGER_2_URL: http://arranger-datatable3:5052
# Add more ARRANGER_X_URL as needed, matching ARRANGER_COUNT
# ARRANGER_X_URL: http://arranger-x:505X
# Service Connections
ES_USER: elastic
ES_PASS: myelasticpassword
ES_URL: http://elasticsearch:9200
STAGE_URL: http://stage:3000
LECTERN_URL: http://lectern:3031
LYRIC_URL: http://lyric:3030
SONG_URL: http://song:8080
SCORE_URL: http://score:8087
MAESTRO_URL: http://maestro:11235
OBJECT_STORAGE_URL: http://minio:9000
command: >
sh -c '
set -e
echo "Profile is set to: $PROFILE"
case "$PROFILE" in
"phase1")
echo "Running phase1 deployment..."
chmod +x conductor/scripts/deployments/phase1.sh
conductor/scripts/deployments/phase1.sh
;;
"phase2")
echo "Running phase2 deployment..."
chmod +x conductor/scripts/deployments/phase2.sh
conductor/scripts/deployments/phase2.sh
;;
"phase3")
echo "Running phase3 deployment ..."
chmod +x conductor/scripts/deployments/phase3.sh
conductor/scripts/deployments/phase3.sh
;;
"stageDev")
echo "Running Stage Dev deployment..."
chmod +x conductor/scripts/deployments/stageDev.sh
conductor/scripts/deployments/stageDev.sh
;;
*)
echo "Invalid profile specified."
exit 1
;;
esac
exit 0
'
healthcheck:
test: ["CMD", "test", "-f", "conductor/volumes/health/conductor_health"]
interval: 5s
timeout: 40s
retries: 100
start_period: 30s
networks:
- conductor-network
# ================================================================================== #
# ================================================================================== #
# phase1: #
# Search & Discovery #
# ================================================================================== #
# phase1 focuses on how you want your data displayed in the front-end portal. #
# Here you want to figure out how many data tables (Arrangers) you want and how you #
# want them configured. This is also a good time to do any theming of your portal. #
# through Stage. #
# ================================================================================== #
# --------------------------------------------------------------------------------------#
# Elasticsearch #
# --------------------------------------------------------------------------------------#
# A search and analytics engine used to help query massive datatables. #
# https://www.elastic.co/guide/en/elasticsearch/reference/7.17/elasticsearch-intro.html #
# --------------------------------------------------------------------------------------#
elasticsearch:
profiles: ["phase1", "phase2", "phase3", "stageDev", "default"]
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.27
container_name: elasticsearch
platform: linux/amd64
ports:
- "9200:9200"
environment:
discovery.type: single-node
cluster.name: workflow.elasticsearch
ES_JAVA_OPTS: -Xms512m -Xmx2048m
ES_USER: elastic
ELASTIC_PASSWORD: myelasticpassword
xpack.security.enabled: "true"
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "10"
volumes:
- elasticsearch-data:/usr/share/configs/elasticsearch/data
healthcheck:
test:
"curl --silent --fail localhost:9200/_cluster/health?wait_for_status=yellow&timeout=50s ||
exit 1"
interval: 10s
timeout: 10s
retries: 5
start_period: 25s
networks:
- conductor-network
# ------------------------------------------------------------------------------------#
# Arranger-Server for our tabular data #
# ------------------------------------------------------------------------------------#
# Search API generation with compatible search UI components #
# https://docs.overture.bio/docs/core-software/Arranger/overview #
# ------------------------------------------------------------------------------------#
arranger-datatable1:
profiles: ["phase1", "phase2", "phase3", "stageDev", "default"]
image: ghcr.io/overture-stack/arranger-server:3.0.0-beta.36
container_name: arranger-datatable1
platform: linux/amd64
depends_on:
conductor:
condition: service_healthy
ports:
- "5050:5050"
volumes:
- ./apps/conductor/configs/arrangerConfigs/datatable1:/app/modules/server/configs
environment:
# Elasticsearch Variables
ES_HOST: http://elasticsearch:9200
ES_USER: elastic
ES_PASS: myelasticpassword
ES_ARRANGER_SET_INDEX: data_arranger_set
# Arranger Variables (Port required)
PORT: 5050
DEBUG: false
ENABLE_LOGS: false
networks:
- conductor-network
arranger-datatable2:
profiles: ["phase1", "phase2", "phase3", "stageDev", "default"]
image: ghcr.io/overture-stack/arranger-server:3.0.0-beta.36
container_name: arranger-datatable2
platform: linux/amd64
depends_on:
conductor:
condition: service_healthy
ports:
- "5051:5051" # Use unique ports for each Arranger instance
volumes:
- ./apps/conductor/configs/arrangerConfigs/datatable2:/app/modules/server/configs # Point to the relevant generated config
environment:
# Elasticsearch Variables
ES_HOST: http://elasticsearch:9200
ES_USER: elastic
ES_PASS: myelasticpassword
ES_ARRANGER_SET_INDEX: datatable2_arranger_set
# Arranger Variables
PORT: 5051 # Required
DEBUG: false
ENABLE_LOGS: false
networks:
- conductor-network
# arranger-datatable3:
# profiles: ["phase1", "phase2", "phase3", "stageDev", "default"]
# image: ghcr.io/overture-stack/arranger-server:3.0.0-beta.36
# container_name: arranger-datatable3
# platform: linux/amd64
# depends_on:
# conductor:
# condition: service_healthy
# ports:
# - "5052:5052" # Use unique ports for each Arranger instance
# volumes:
# - ./apps/conductor/configs/arrangerConfigs/datatable3:/app/modules/server/configs # Point to the relevant generated config
# environment:
# # Elasticsearch Variables
# ES_HOST: http://elasticsearch:9200
# ES_USER: elastic
# ES_PASS: myelasticpassword
# ES_ARRANGER_SET_INDEX: datatable3_arranger_set
# # Arranger Variables
# PORT: 5052 # Required
# DEBUG: false
# ENABLE_LOGS: false
# networks:
# - conductor-network
# ------------------------------------------------------------------------------------#
# Stage #
# ------------------------------------------------------------------------------------#
# The react-based, front end UI scaffolding for Overture #
# https://docs.overture.bio/docs/core-software/Stage/overview #
# ------------------------------------------------------------------------------------#
stage:
profiles: ["phase1", "phase2", "phase3", "default"]
image: stageimage:1.0
container_name: stage
pull_policy: never
platform: linux/arm64/v8
depends_on:
conductor:
condition: service_healthy
ports:
- "3000:3000"
environment:
# Stage Variables
NEXTAUTH_URL: http://localhost:3000/api/auth
NEXT_PUBLIC_LAB_NAME: Prelude
NEXT_PUBLIC_ADMIN_EMAIL: example@example.com
NEXT_PUBLIC_DEBUG: false
NEXT_PUBLIC_SHOW_MOBILE_WARNING: true
NEXT_PUBLIC_ENABLE_DOWNLOADS: true
# Datatable1 Arranger Variables
NEXT_PUBLIC_ARRANGER_DATATABLE_1_API: http://arranger-datatable1:5050
NEXT_PUBLIC_ARRANGER_DATATABLE_1_DOCUMENT_TYPE: file
NEXT_PUBLIC_ARRANGER_DATATABLE_1_INDEX: datatable1_centric
# Datatable2 Arranger Variables
NEXT_PUBLIC_ARRANGER_DATATABLE_2_API: http://arranger-datatable2:5051
NEXT_PUBLIC_ARRANGER_DATATABLE_2_DOCUMENT_TYPE: file
NEXT_PUBLIC_ARRANGER_DATATABLE_2_INDEX: datatable2_centric
# Datatable3 Arranger Variables
NEXT_PUBLIC_ARRANGER_DATATABLE_3_API: http://arranger-datatable3:5052
NEXT_PUBLIC_ARRANGER_DATATABLE_3_DOCUMENT_TYPE: file
NEXT_PUBLIC_ARRANGER_DATATABLE_3_INDEX: datatable3_centric
# Using localhost for client-side requests
NEXT_PUBLIC_SONG_API: http://song:8080
NEXT_PUBLIC_SCORE_API: http://score:8087
NEXT_PUBLIC_LYRIC_API: http://lyric:3030
NEXT_PUBLIC_LECTERN_API: http://lectern:3031
# Auth Variables
NEXTAUTH_SECRET: your-secure-secret-here
# File Arranger Variables
NEXT_PUBLIC_ARRANGER_MOLECULAR_DATA_API: http://arranger-molecular:5060
NEXT_PUBLIC_ARRANGER_MOLECULAR_DATA_DOCUMENT_TYPE: file
NEXT_PUBLIC_ARRANGER_MOLECULAR_DATA_INDEX: file_centric
NEXT_PUBLIC_ARRANGER_MANIFEST_COLUMNS: repositories.code, analysis.analysis_id, object_id, study_id, file.name, file.size, file.md5sum, file_access, analysis.experiment.acknowledgements.strategy, file.data_type, analysis.experiment.data.sequence_length
volumes:
- stage-data:/usr/src/public/static/dms_user_assets
networks:
- conductor-network
# ================================================================================== #
# ================================================================================== #
# phase2: #
# Tabular data storage & submission #
# ================================================================================== #
# Here we will focus on implementing our back-end tabular data management services #
# which will include the addition of Lyric, Lectern, LyricDb (Postgres) and a #
# LecternDb (MongoDb). #
# ================================================================================== #
# -----------------------------------------------------------------------------------#
# Lectern #
# -----------------------------------------------------------------------------------#
# Schema manager that validates and stores collections of data dictionaries. #
# https://docs.overture.bio/docs/under-development/lectern/ #
# -----------------------------------------------------------------------------------#
lectern:
profiles: ["phase2", "phase3", "default"]
image: ghcr.io/overture-stack/lectern:2.0.0-beta.3
container_name: lectern
platform: linux/amd64
depends_on:
lectern-db:
condition: service_healthy
ports:
- "3031:3031"
environment:
PORT: 3031
OPENAPI_PATH: /api-docs
MONGO_HOST: lectern-db
MONGO_PORT: 27017
MONGO_DB: lectern
MONGO_USER: admin
MONGO_PASS: admin123
AUTH_ENABLED: false
VAULT_ENABLED: false
networks:
- conductor-network
# -----------------------------------------------------------------------------------#
# LecternDb #
# -----------------------------------------------------------------------------------#
# Database used by Lectern to store its schemas. #
# -----------------------------------------------------------------------------------#
lectern-db:
profiles: ["phase2", "phase3", "default"]
image: bitnami/mongodb:4.0
container_name: lectern-db
platform: linux/amd64
ports:
- 27017:27017
volumes:
- lectern-db-data:/bitnami
environment:
MONGODB_USERNAME: admin
MONGODB_PASSWORD: admin123
MONGODB_DATABASE: lectern
MONGODB_ROOT_PASSWORD: admin123
healthcheck:
test:
[
"CMD",
"mongo",
"--authenticationDatabase",
"admin",
"-u",
"root",
"-p",
"admin123",
"--eval",
"db.adminCommand('ping')",
]
interval: 10s
timeout: 10s
retries: 5
start_period: 40s
networks:
- conductor-network
# -----------------------------------------------------------------------------------#
# Lryic #
# -----------------------------------------------------------------------------------#
# Submit, validate, and manage structured data according to predefined schemas. #
# https://docs.overture.bio/docs/under-development/lyric/ #
# -----------------------------------------------------------------------------------#
lyric:
profiles: ["phase2", "phase3", "default"]
image: ghcr.io/overture-stack/lyric:0.6.0
container_name: lyric
platform: linux/amd64
depends_on:
lyric-db:
condition: service_healthy
lectern:
condition: service_started
ports:
- "3030:3030"
environment:
PORT: 3030
DB_HOST: lyric-db
DB_PORT: 5432
DB_NAME: lyricDb
DB_USER: admin
DB_PASSWORD: admin123
LECTERN_URL: http://lectern:3031
LOG_LEVEL: debug
AUDIT_ENABLED: false
ID_USELOCAL: true
UPLOAD_LIMIT: "100mb"
PLURALIZE_SCHEMAS_ENABLED: false
networks:
- conductor-network
# -----------------------------------------------------------------------------------#
# LyricDb #
# -----------------------------------------------------------------------------------#
# Database used by Lyric to store its tabular data. #
# -----------------------------------------------------------------------------------#
lyric-db:
profiles: ["phase2", phase3, "default"]
image: postgres:15-alpine
container_name: lyric-db
platform: linux/amd64
ports:
- 5434:5432
environment:
POSTGRES_PASSWORD: admin123
POSTGRES_USER: admin
POSTGRES_DB: lyricDb
healthcheck:
test: ["CMD-SHELL", "pg_isready -U admin -d lyricDb"]
interval: 20s
timeout: 10s
retries: 10
start_period: 20s
volumes:
- lyric-db-data:/var/lib/postgresql/data
networks:
- conductor-network
# -----------------------------------------------------------------------------------#
# Maestro #
# -----------------------------------------------------------------------------------#
# Indexs data into Elasticsearch on publication #
# https://docs.overture.bio/docs/core-software/Maestro/overview #
# -----------------------------------------------------------------------------------#
maestro:
profiles: ["phase2", phase3, "default"]
image: ghcr.io/overture-stack/maestro:e868d03
container_name: maestro
platform: linux/amd64
depends_on:
lectern:
condition: service_started
conductor:
condition: service_healthy
ports:
- "11235:11235"
environment:
# Maestro Base Variables
MAESTRO_FAILURELOG_ENABLED: true
MAESTRO_FAILURELOG_DIR: app/logs/maestro
MAESTRO_LOGGING_LEVEL_ROOT: INFO
MAESTRO_DISABLEEVENTINDEXING: true
# Repository Configuration - Lyric
MAESTRO_REPOSITORIES_0_BASE_URL: http://lyric:3030
# in the old world we added these to each document in elasticsearch,
MAESTRO_REPOSITORIES_0_CODE: lyric.overture
MAESTRO_REPOSITORIES_0_NAME: Overture Lyric
MAESTRO_REPOSITORIES_0_PAGINATION_SIZE: 50
MAESTRO_REPOSITORIES_0_INDEX_NAME: datatable1-index
MAESTRO_REPOSITORIES_0_TYPE: LYRIC
MAESTRO_REPOSITORIES_0_LYRIC_VALID_DATA_ONLY: true
MAESTRO_REPOSITORIES_0_LYRIC_CATEGORY_ID: 1
# Elasticsearch Settings (Required)
MAESTRO_ELASTICSEARCH_NODES: http://elasticsearch:9200
MAESTRO_ELASTICSEARCH_VERSION: 7
MAESTRO_ELASTICSEARCH_CLIENT_BASICAUTH_ENABLED: true
MAESTRO_ELASTICSEARCH_CLIENT_BASICAUTH_USER: elastic
MAESTRO_ELASTICSEARCH_CLIENT_BASICAUTH_PASSWORD: myelasticpassword
MAESTRO_ELASTICSEARCH_CLIENT_RETRY_MAX_ATTEMPTS: 3
MAESTRO_ELASTICSEARCH_CLIENT_RETRY_WAIT_DURATION_MILLIS: 500
MAESTRO_ELASTICSEARCH_CLIENT_DOCS_PER_BULK_REQ_MAX: 5000
MAESTRO_ELASTICSEARCH_CLIENT_CONNECTION_TIMEOUT: 5000
# Repository Configuration - Song
MAESTRO_REPOSITORIES_1_BASE_URL: http://song:8080
MAESTRO_REPOSITORIES_1_CODE: song.overture
MAESTRO_REPOSITORIES_1_NAME: Overture Song
MAESTRO_REPOSITORIES_1_PAGINATION_SIZE: 50
MAESTRO_REPOSITORIES_1_INDEX_NAME: file-index
MAESTRO_REPOSITORIES_1_TYPE: SONG
MAESTRO_REPOSITORIES_1_SONG_INDEXABLE_STUDY_STATES: PUBLISHED
MAESTRO_REPOSITORIES_1_SONG_ANALYSIS_CENTRIC_ENABLED: true
MAESTRO_REPOSITORIES_1_SONG_ORGANIZATION: OICR
MAESTRO_REPOSITORIES_1_SONG_COUNTRY: CA
volumes:
- maestro-data:/app/app-data
networks:
- conductor-network
# ================================================================================== #
# ================================================================================== #
# phase3: #
# File data storage & submission #
# ================================================================================== #
# Here we will focus on implementing our back-end file management services which #
# will include the addition of Song, Score, SongDb (Postgres) and an Object #
# Storage provider (Minio). #
# ================================================================================== #
# ---------------------------------------------------------------------------------- #
# Song #
# ---------------------------------------------------------------------------------- #
# Catalog and manage metadata associated to file data #
# https://docs.overture.bio/docs/core-software/Song/overview #
# ---------------------------------------------------------------------------------- #
song:
profiles: ["phase3", "default"]
image: ghcr.io/overture-stack/song-server:a81a8e48
container_name: song
platform: linux/amd64
depends_on:
song-db:
condition: service_healthy
ports:
- "8080:8080"
environment:
# Spring Variables
SPRING_PROFILES_ACTIVE: dev, noSecurityDev
# Swagger/OpenAPI Configuration
SPRING_MVC_CORS_ENABLED: "true"
SPRING_MVC_CORS_ALLOWED-ORIGINS: "*"
SPRING_MVC_CORS_ALLOWED-METHODS: "GET,POST,PUT,DELETE,PATCH,OPTIONS"
SPRING_MVC_CORS_ALLOWED-HEADERS: "*"
SPRING_MVC_CORS_ALLOW-CREDENTIALS: "true"
# Flyway variables
SPRING_FLYWAY_ENABLED: true
# Song Variables
ID_USELOCAL: true
SCHEMAS_ENFORCELATEST: true
# Score Variables
SCORE_URL: http://score:8087
# Postgres Variables
SPRING_DATASOURCE_URL: jdbc:postgresql://song-db:5432/songDb?stringtype=unspecified
SPRING_DATASOURCE_USERNAME: admin
SPRING_DATASOURCE_PASSWORD: admin123
# Swagger Variable
SWAGGER_ALTERNATEURL: /swagger-api
networks:
- conductor-network
song-client:
profiles: ["phase3", "default"]
image: ghcr.io/overture-stack/song-client:d7e5cb61
container_name: song-client
platform: linux/amd64
depends_on:
conductor:
condition: service_healthy
volumes:
- ./data:/data
- ./output:/output
environment:
ACCESSTOKEN: 68fb42b4-f1ed-4e8c-beab-3724b99fe528
CLIENT_STUDY_ID: demo
CLIENT_SERVER_URL: http://song:8080
networks:
- conductor-network
command: tail -f /dev/null
# -----------------------------------------------------------------------------------#
# SongDb #
# -----------------------------------------------------------------------------------#
# Database used by Lyric to store its tabular data. #
# -----------------------------------------------------------------------------------#
song-db:
profiles: ["phase3", "default"]
depends_on:
- conductor
image: postgres:11.1
container_name: song-db
platform: linux/amd64
ports:
- "5433:5432"
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: admin123
POSTGRES_DB: songDb
user: postgres:postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready -U admin -d songDb"]
interval: 20s
timeout: 10s
retries: 10
start_period: 20s
volumes:
- song-db-data:/var/lib/postgresql/data
networks:
- conductor-network
# -----------------------------------------------------------------------------------#
# Score #
# -----------------------------------------------------------------------------------#
# Transfer file data to and from any S3 object storage. #
# https://docs.overture.bio/docs/core-software/Score/overview #
# -----------------------------------------------------------------------------------#
score:
profiles: ["phase3", "default"]
image: ghcr.io/overture-stack/score-server:6c4a3a3c
container_name: score
platform: linux/amd64
depends_on:
minio:
condition: service_healthy
ports:
- "8087:8087"
environment:
# Spring Variables
SPRING_PROFILES_ACTIVE: noSecurityDev, s3
SERVER_PORT: 8087
# Song Variable
METADATA_URL: http://song:8080
# Score Variables
SERVER_SSL_ENABLED: "false"
# Object Storage Variables
S3_ENDPOINT: http://minio:9000
S3_PRESIGNEDURL_BASEURL: http://localhost:9000
S3_ACCESSKEY: admin
S3_SECRETKEY: admin123
S3_SIGV4ENABLED: true
S3_SECURED: false
OBJECT_SENTINEL: heliograph
BUCKET_NAME_OBJECT: object
BUCKET_NAME_STATE: state
UPLOAD_PARTSIZE: 1073741824
UPLOAD_CONNECTION_TIMEOUT: 1200000
networks:
- conductor-network
score-client:
profiles: ["phase3", "default"]
image: ghcr.io/overture-stack/score:6c4a3a3c
container_name: score-client
platform: linux/amd64
depends_on:
conductor:
condition: service_healthy
volumes:
- ./data:/data
- ./output:/output
environment:
ACCESSTOKEN: 68fb42b4-f1ed-4e8c-beab-3724b99fe528
STORAGE_URL: http://score:8087
METADATA_URL: http://song:8080
networks:
- conductor-network
command: tail -f /dev/null
# -----------------------------------------------------------------------------------#
# Minio #
# -----------------------------------------------------------------------------------#
# A locally deployed open source S3-compatible object storage # #
# http://docs.overture.bio/guides/deployment-guide/data-management-&-storage #
# -----------------------------------------------------------------------------------#
minio:
profiles: ["phase3", "default"]
image: minio/minio:RELEASE.2018-05-11T00-29-24Z
container_name: minio
platform: linux/amd64
ports:
- 9000:9000
environment:
MINIO_ACCESS_KEY: admin
MINIO_SECRET_KEY: admin123
command: server /data
volumes:
- ./apps/conductor/volumes/data-minio:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
networks:
- conductor-network
# ------------------------------------------------------------------------------------#
# Arranger-Server for our file data #
# ------------------------------------------------------------------------------------#
# Search API generation with compatible search UI components #
# https://docs.overture.bio/docs/core-software/Arranger/overview #
# ------------------------------------------------------------------------------------#
arranger-molecular:
profiles: ["phase3", "stageDev", "default"]
image: ghcr.io/overture-stack/arranger-server:3.0.0-beta.36
container_name: arranger-molecular
platform: linux/amd64
depends_on:
conductor:
condition: service_healthy
ports:
- "5060:5060"
volumes:
- ./apps/conductor/configs/arrangerConfigs/fileDataConfigs:/app/modules/server/configs
environment:
# Elasticsearch Variables
ES_HOST: http://elasticsearch:9200
ES_USER: elastic
ES_PASS: myelasticpassword
ES_ARRANGER_SET_INDEX: file_arranger_set
# Arranger Variables
PORT: 5060
DEBUG: false
ENABLE_LOGS: false
networks:
- conductor-network
volumes:
elasticsearch-data:
stage-data:
maestro-data:
song-db-data:
lyric-db-data:
lectern-db-data:
networks:
conductor-network:
driver: bridge