261 lines
8.1 KiB
YAML
261 lines
8.1 KiB
YAML
# Copyright (c) 2018-2018
|
|
# Data Intensive Applications and Systems Labaratory (DIAS)
|
|
# Ecole Polytechnique Federale de Lausanne
|
|
#
|
|
# All Rights Reserved.
|
|
#
|
|
# Permission to use, copy, modify and distribute this software and its
|
|
# documentation is hereby granted, provided that both the copyright notice
|
|
# and this permission notice appear in all copies of the software, derivative
|
|
# works or modified versions, and any portions thereof, and that both notices
|
|
# appear in supporting documentation.
|
|
#
|
|
# This code is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
# A PARTICULAR PURPOSE. THE AUTHORS AND ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE
|
|
# DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
|
|
# USE OF THIS SOFTWARE.
|
|
|
|
version: '3'
|
|
|
|
networks:
|
|
local:
|
|
|
|
services:
|
|
zookeeper:
|
|
image: ${ZOOKEEPER_IMAGE}${ZOOKEEPER_VERSION}
|
|
environment:
|
|
ZOO_MY_ID: 1
|
|
ZOO_SERVERS: server.1=zookeeper:2888:3888
|
|
restart: unless-stopped # Used only by docker-compose
|
|
deploy: # Used only by docker stack
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 5s
|
|
max_attempts: 3
|
|
window: 120s
|
|
networks:
|
|
- local
|
|
# ports:
|
|
# - "${ZOOKEEPER_PORT1}:2181"
|
|
# - "${ZOOKEEPER_PORT2}:2888"
|
|
# - "${ZOOKEEPER_PORT3}:3888"
|
|
|
|
mesos-master:
|
|
image: ${MESOS_MASTER_IMAGE}${MESOS_MASTER_VERSION}
|
|
environment:
|
|
MESOS_PORT: 5050
|
|
MESOS_ZK: zk://zookeeper:${ZOOKEEPER_PORT1}/mesos
|
|
MESOS_QUORUM: 1
|
|
MESOS_REGISTRY: in_memory
|
|
MESOS_CLUSTER: local
|
|
MESOS_HOSTNAME: mesos-master
|
|
MESOS_LOG_DIR: /var/log/mesos
|
|
MESOS_WORK_DIR: /tmp/mesos
|
|
volumes:
|
|
- ${MESOS_MASTER_LOGS}:/var/log/mesos:rw
|
|
- ${MESOS_MASTER_TMP}:/tmp/mesos:rw
|
|
depends_on:
|
|
- zookeeper
|
|
restart: unless-stopped # Used only by docker-compose
|
|
deploy: # Used only by docker stack
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 5s
|
|
max_attempts: 3
|
|
window: 120s
|
|
networks:
|
|
- local
|
|
# ports:
|
|
# - "${MESOS_MASTER_PORT}:5050"
|
|
|
|
mesos-slave:
|
|
image: ${MESOS_SLAVE_IMAGE}${MESOS_SLAVE_VERSION}
|
|
environment:
|
|
MESOS_MASTER: zk://zookeeper:${ZOOKEEPER_PORT1}/mesos
|
|
MESOS_PORT: 5051
|
|
MESOS_LOG_DIR: /var/log/mesos
|
|
MESOS_WORK_DIR: /tmp/mesos
|
|
MESOS_CONTAINERIZERS: docker,mesos
|
|
MESOS_EXECUTOR_REGISTRATION_TIMEOUT: 5mins
|
|
MESOS_EXECUTOR_SHUTDOWN_GRACE_PERIOD: 90secs
|
|
MESOS_DOCKER_STOP_TIMEOUT: 60secs
|
|
MESOS_HOSTNAME: mesos-slave
|
|
MESOS_SWITCH_USER: 0
|
|
# see bug resolution for "Failed to determine the hierarchy where the subsystem freezer is attached" at https://github.com/eBayClassifiedsGroup/PanteraS/issues/142
|
|
MESOS_LAUNCHER: "posix"
|
|
# privileged: true
|
|
depends_on:
|
|
- zookeeper
|
|
- mesos-master
|
|
restart: unless-stopped # Used only by docker-compose
|
|
deploy: # Used only by docker stack
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 5s
|
|
max_attempts: 3
|
|
window: 120s
|
|
volumes:
|
|
- /sys:/sys:ro
|
|
- /var/run/docker.sock:/var/run/docker.sock:rw
|
|
- ${MESOS_SLAVE_LOGS}:/var/log/mesos:rw
|
|
- ${MESOS_SLAVE_TMP}:/tmp/mesos:rw
|
|
networks:
|
|
- local
|
|
# ports:
|
|
# - "${MESOS_SLAVE_PORT}:5051"
|
|
|
|
chronos:
|
|
image: ${CHRONOS_IMAGE}${CHRONOS_VERSION}
|
|
command: "--zk_hosts zookeeper:${ZOOKEEPER_PORT1} --master zk://zookeeper:${ZOOKEEPER_PORT1}/mesos --zk_timeout 30000"
|
|
environment:
|
|
PORT0: 4400
|
|
PORT1: 4401
|
|
depends_on:
|
|
- zookeeper
|
|
- mesos-slave
|
|
restart: unless-stopped # Used only by docker-compose
|
|
deploy: # Used only by docker stack
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 5s
|
|
max_attempts: 3
|
|
window: 120s
|
|
networks:
|
|
- local
|
|
# ports:
|
|
# - "${CHRONOS_PORT1}:4400"
|
|
# - "${CHRONOS_PORT2}:4401"
|
|
|
|
db:
|
|
image: ${DB_IMAGE}${DB_VERSION}
|
|
environment:
|
|
POSTGRES_USER: ${DB_USER_ADMIN}
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD_ADMIN}
|
|
PGDATA: "/data/pgdata"
|
|
restart: unless-stopped # Used only by docker-compose
|
|
deploy: # Used only by docker stack
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 5s
|
|
max_attempts: 3
|
|
window: 120s
|
|
volumes:
|
|
- ${DB_DATA}:/data:rw
|
|
- ${DB_DATASETS}:/datasets:ro
|
|
networks:
|
|
- local
|
|
# ports:
|
|
# - "${DB_PORT}:5432"
|
|
|
|
woken:
|
|
image: ${WOKEN_IMAGE}${WOKEN_VERSION}
|
|
depends_on:
|
|
- chronos
|
|
# - db
|
|
restart: unless-stopped # Used only by docker-compose
|
|
deploy: # Used only by docker stack
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 5s
|
|
max_attempts: 3
|
|
window: 120s
|
|
volumes:
|
|
- ${WOKEN_CONF}:/opt/woken/config/application.conf:ro
|
|
networks:
|
|
- local
|
|
# ports:
|
|
# - "${WOKEN_PORT2}:${WOKEN_PORT2}"
|
|
# - "${WOKEN_PORT1}:${WOKEN_PORT1}"
|
|
|
|
woken-validation:
|
|
image: ${WOKEN_VALIDATION_IMAGE}${WOKEN_VALIDATION_VERSION}
|
|
depends_on:
|
|
- woken
|
|
restart: unless-stopped # Used only by docker-compose
|
|
deploy: # Used only by docker stack
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 5s
|
|
max_attempts: 3
|
|
window: 120s
|
|
volumes:
|
|
- ${WOKEN_VALIDATION_CONF}:/opt/woken-validation/config/application.conf:ro
|
|
networks:
|
|
- local
|
|
# ports:
|
|
# - "${WOKEN_VALIDATION_PORT}:${WOKEN_VALIDATION_PORT}"
|
|
|
|
backend:
|
|
image: ${PORTAL_BACKEND_IMAGE}${PORTAL_BACKEND_VERSION}
|
|
environment:
|
|
PORTAL_DB_URL: jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME4}
|
|
PORTAL_DB_SERVER: ${DB_HOST}:${DB_PORT}
|
|
PORTAL_DB_USER: ${DB_USER4}
|
|
PORTAL_DB_PASSWORD: ${DB_PASSWORD4}
|
|
META_DB_URL: jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME1}
|
|
META_DB_SERVER: ${DB_HOST}:${DB_PORT}
|
|
META_DB_USER: ${DB_USER1}
|
|
META_DB_PASSWORD: ${DB_PASSWORD1}
|
|
FEATURES_DB_URL: jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME2}
|
|
FEATURES_DB_SERVER: ${DB_HOST}:${DB_PORT}
|
|
FEATURES_DB_USER: ${DB_USER2}
|
|
FEATURES_DB_PASSWORD: ${DB_PASSWORD2}
|
|
FEATURES_DB_MAIN_TABLE: cde_features_a
|
|
CONTEXT_PATH: /services
|
|
AUTHENTICATION: ${PORTAL_BACKEND_AUTHENTICATION}
|
|
CLIENT_ID: ${PORTAL_BACKEND_CLIENT_ID}
|
|
CLIENT_SECRET: ${PORTAL_BACKEND_CLIENT_SECRET}
|
|
TOKEN_URI: https://services.humanbrainproject.eu/oidc/token
|
|
AUTH_URI: https://services.humanbrainproject.eu/oidc/authorize
|
|
USER_INFO_URI: https://services.humanbrainproject.eu/oidc/userinfo
|
|
FRONTEND_LOGIN_URL: ${PORTAL_FRONTEND_URL}/services/login/hbp
|
|
FRONTEND_AFTER_LOGIN_URL: ${PORTAL_FRONTEND_URL}/home
|
|
FRONTEND_AFTER_LOGOUT_URL: ${PORTAL_FRONTEND_URL}/services/login/hbp
|
|
WOKEN_HOST: ${WOKEN_HOST}
|
|
WOKEN_PORT: ${WOKEN_PORT1}
|
|
WOKEN_AKKA_PATH: /user/entrypoint
|
|
EXAREME_URL: ${WOKEN_EXAREME_URL}
|
|
LOGGING_LEVEL_WEB: DEBUG
|
|
LOGGING_LEVEL_HIBERNATE: WARN
|
|
SESSION_TIMEOUT: 2592000
|
|
VIRTUAL_HOST: backend
|
|
VIRTUAL_PORT: 8080
|
|
depends_on:
|
|
# - db
|
|
- woken
|
|
restart: unless-stopped # Used only by docker-compose
|
|
deploy: # Used only by docker stack
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 5s
|
|
max_attempts: 3
|
|
window: 120s
|
|
networks:
|
|
- local
|
|
# ports:
|
|
# - "8080:8080"
|
|
# - "8089:8089"
|
|
|
|
frontend:
|
|
image: ${PORTAL_FRONTEND_IMAGE}${PORTAL_FRONTEND_VERSION}
|
|
environment:
|
|
WORKER_PROCESSES: 1
|
|
ERROR_LOG_LEVEL: warn
|
|
PORTAL_VIRTUAL_HOST: frontend
|
|
PORTAL_BACKEND_SERVER: backend:8080
|
|
PORTAL_BACKEND_CONTEXT: services
|
|
depends_on:
|
|
- backend
|
|
restart: unless-stopped # Used only by docker-compose
|
|
deploy: # Used only by docker stack
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 5s
|
|
max_attempts: 3
|
|
window: 120s
|
|
networks:
|
|
- local
|
|
ports:
|
|
- "${PORTAL_FRONTEND_PORT}:80"
|