11version : ' 3.7'
22services :
3- ego-api :
4- image : " overture/ego:3.1.0 "
3+ keycloak-server :
4+ image : docker.io/bitnami/keycloak:22
55 environment :
6- SERVER_PORT : 8080
7- SPRING_DATASOURCE_URL : jdbc:postgresql://ego-postgres:5432/ego?stringtype=unspecified
8- SPRING_DATASOURCE_USERNAME : postgres
9- SPRING_DATASOURCE_PASSWORD : password
10- SPRING_FLYWAY_ENABLED : " true"
11- SPRING_FLYWAY_LOCATIONS : " classpath:flyway/sql,classpath:db/migration"
12- SPRING_PROFILES : demo, auth
13- expose :
14- - " 8080"
6+ - KC_DB=postgres
7+ - KC_DB_URL=jdbc:postgresql://keycloak-postgresql/bitnami_keycloak
8+ - KC_DB_USERNAME=bn_keycloak
9+ # default expiration days of apiKeys is 365
10+ # - APIKEY_DURATION_DAYS=365
1511 ports :
1612 - " 9082:8080"
17- command : java -jar /srv/ego/install/ego.jar
1813 depends_on :
19- - ego-postgres
20- ego-postgres :
21- image : postgres:9.5
14+ - keycloak-postgresql
15+ volumes :
16+ - type : bind
17+ source : ./docker/keycloak-init/data_import
18+ target : /opt/bitnami/keycloak/data/import
19+ command :
20+ - /bin/bash
21+ - -c
22+ - |
23+ curl -sL https://github.com/oicr-softeng/keycloak-apikeys/releases/download/1.0.1/keycloak-apikeys-1.0.1.jar -o /opt/bitnami/keycloak/providers/keycloak-apikeys-1.0.1.jar
24+ kc.sh start-dev --import-realm
25+ keycloak-postgresql :
26+ image : docker.io/bitnami/postgresql:11
2227 environment :
23- - POSTGRES_DB=ego
24- - POSTGRES_PASSWORD=password
28+ # ALLOW_EMPTY_PASSWORD is recommended only for development.
29+ - ALLOW_EMPTY_PASSWORD=yes
30+ - POSTGRESQL_USERNAME=bn_keycloak
31+ - POSTGRESQL_DATABASE=bitnami_keycloak
2532 expose :
2633 - " 5432"
27- volumes :
28- - " ./docker/ego-init:/docker-entrypoint-initdb.d"
2934 ports :
3035 - " 9444:5432"
3136 object-storage :
@@ -36,7 +41,7 @@ services:
3641 MINIO_SECRET_KEY : minio123
3742 command : server /data
3843 healthcheck :
39- test : ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
44+ test : [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ]
4045 interval : 30s
4146 timeout : 20s
4247 retries : 3
@@ -61,11 +66,15 @@ services:
6166 S3_ACCESSKEY : minio
6267 S3_SECRETKEY : minio123
6368 S3_SIGV4ENABLED : " true"
64- AUTH_SERVER_URL : http://ego-api:8080/o/check_api_key/
69+ SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWK_SET_URI : http://keycloak-server:8080/realms/myrealm/protocol/openid-connect/certs
70+ AUTH_SERVER_URL : http://keycloak-server:8080/realms/myrealm/apikey/check_api_key/
6571 AUTH_SERVER_TOKENNAME : apiKey
66- AUTH_SERVER_CLIENTID : score
67- AUTH_SERVER_CLIENTSECRET : scoresecret
68- AUTH_SERVER_SCOPE_STUDY_PREFIX : score.
72+ AUTH_SERVER_CLIENTID : system
73+ AUTH_SERVER_CLIENTSECRET : systemsecret
74+ AUTH_SERVER_PROVIDER : keycloak
75+ AUTH_SERVER_KEYCLOAK_HOST : http://keycloak-server:8080
76+ AUTH_SERVER_KEYCLOAK_REALM : myrealm
77+ AUTH_SERVER_SCOPE_STUDY_PREFIX : PROGRAMDATA.
6978 AUTH_SERVER_SCOPE_UPLOAD_SUFFIX : .WRITE
7079 AUTH_SERVER_SCOPE_DOWNLOAD_SUFFIX : .READ
7180 AUTH_SERVER_SCOPE_DOWNLOAD_SYSTEM : score.WRITE
@@ -86,7 +95,6 @@ services:
8695 depends_on :
8796 - object-storage
8897 - song-server
89- - ego-api
9098 volumes :
9199 - " ./docker/scratch/storage-server-logs:/opt/dcc/storage_server_logs"
92100 score-client :
@@ -95,7 +103,7 @@ services:
95103 dockerfile : " $DOCKERFILE_NAME"
96104 target : client
97105 environment :
98- ACCESSTOKEN : f69b726d-d40f-4261-b105-1ec7e6bf04d5
106+ ACCESSTOKEN : 07a5a12e-a85f-4248-a9a1-851a8062b6ac
99107 METADATA_URL : http://song-server:8080
100108 STORAGE_URL : http://score-server:8080
101109 JAVA_TOOL_OPTIONS : -agentlib:jdwp=transport=dt_socket,address=*:5005,server=y,suspend=n
@@ -107,7 +115,7 @@ services:
107115 command : bin/score-client
108116 user : " $MY_UID:$MY_GID"
109117 song-db :
110- image : " postgres:9.6 "
118+ image : " postgres:11.1 "
111119 environment :
112120 POSTGRES_DB : song
113121 POSTGRES_USER : postgres
@@ -118,6 +126,11 @@ services:
118126 - " 12345:5432"
119127 volumes :
120128 - " ./docker/song-db-init:/docker-entrypoint-initdb.d"
129+ healthcheck :
130+ test : [ "CMD-SHELL", "pg_isready -U postgres" ]
131+ interval : 15s
132+ timeout : 15s
133+ retries : 5
121134 aws-cli :
122135 image : " mesosphere/aws-cli:latest"
123136 environment :
@@ -127,18 +140,23 @@ services:
127140 volumes :
128141 - " ./docker/object-storage-init/data/oicr.icgc.test/data:/score-data:ro"
129142 song-server :
130- image : overture/song-server:4.2.2
143+ image : ghcr.io/ overture-stack /song-server:438c2c42
131144 environment :
132145 SERVER_PORT : 8080
133146 SPRING_PROFILES_ACTIVE : " prod,secure,default"
134- AUTH_SERVER_URL : http://ego-api:8080/o/check_token/
135- AUTH_SERVER_CLIENTID : song
136- AUTH_SERVER_CLIENTSECRET : songsecret
137- AUTH_SERVER_SCOPE_STUDY_PREFIX : song.
147+ SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWK_SET_URI : http://keycloak-server:8080/realms/myrealm/protocol/openid-connect/certs
148+ AUTH_SERVER_INTROSPECTIONURI : http://keycloak-server:8080/realms/myrealm/apikey/check_api_key/
149+ AUTH_SERVER_TOKENNAME : apiKey
150+ AUTH_SERVER_CLIENTID : system
151+ AUTH_SERVER_CLIENTSECRET : systemsecret
152+ AUTH_SERVER_PROVIDER : keycloak
153+ AUTH_SERVER_KEYCLOAK_HOST : http://keycloak-server:8080
154+ AUTH_SERVER_KEYCLOAK_REALM : myrealm
155+ AUTH_SERVER_SCOPE_STUDY_PREFIX : PROGRAMDATA.
138156 AUTH_SERVER_SCOPE_STUDY_SUFFIX : .WRITE
139157 AUTH_SERVER_SCOPE_SYSTEM : song.WRITE
140158 SCORE_URL : http://score-server:8080
141- SCORE_ACCESSTOKEN : f69b726d-d40f-4261-b105-1ec7e6bf04d5
159+ SCORE_ACCESSTOKEN : 07a5a12e-a85f-4248-a9a1-851a8062b6ac
142160 MANAGEMENT_SERVER_PORT : 8081
143161 ID_USELOCAL : " true"
144162 SPRING_DATASOURCE_USERNAME : postgres
@@ -149,8 +167,8 @@ services:
149167 ports :
150168 - " 8080:8080"
151169 depends_on :
152- - song-db
153- - ego-api
170+ song-db :
171+ condition : service_healthy
154172 volumes :
155173 - " ./docker/scratch/song-server-logs:/opt/dcc/server_logs"
156174
0 commit comments