version: '2.2'
services:
# genomics-app:
# image: genomics
# environment:
# - SPRING_PROFILES_ACTIVE=prod,swagger
# - SPRING_CLOUD_CONSUL_HOST=consul
# - SPRING_CLOUD_CONSUL_PORT=8500
# - SPRING_DATASOURCE_URL=jdbc:postgresql://genomics-postgresql:5432/genomics
# - SPRING_DATA_NEO4J_URI=bolt://genomics-neo4j:7687
# - SPRING_DATA_NEO4J_USERNAME=neo4j
# - SPRING_DATA_NEO4J_PASSWORD=qwerty
# - SPRING_DATA_MONGODB_URI=mongodb://genomics_user:another@mongodb-primary:27017,mongodb-secondary:27017/genomics?replicaSet=rs0
# # - SPRING_DATA_MONGODB_DATABASE=genomics
# - JHIPSTER_SLEEP=100 # gives time for the database to boot before the application
# - SPRING_CLOUD_STREAM_KAFKA_BINDER_BROKERS=kafka
# - SPRING_CLOUD_STREAM_KAFKA_BINDER_ZK_NODES=zookeeper
# ports:
# - 8080:8080
genomics-postgresql:
extends:
file: postgresql.yml
service: genomics-postgresql
genomics-neo4j:
extends:
file: neo4j.yml
service: genomics-neo4j
mongodb-primary:
hostname: mongodb-primary
image: 'bitnami/mongodb:latest'
ports:
- 27017:27017
environment:
- MONGODB_REPLICA_SET_NAME=rs0
- MONGODB_REPLICA_SET_MODE=primary
- MONGODB_ROOT_PASSWORD=another_root
- MONGODB_DATABASE=genomics
- MONGODB_REPLICA_SET_KEY=replicasetkey123
- MONGODB_USERNAME=genomics_user
- MONGODB_PASSWORD=another
- MONGODB_ADVERTISED_HOSTNAME=mongodb-primary
volumes:
- 'mongodb_master_data:/bitnami'
mongodb-secondary:
hostname: mongodb-secondary
image: 'bitnami/mongodb:latest'
depends_on:
- mongodb-primary
environment:
- MONGODB_REPLICA_SET_NAME=rs0
- MONGODB_REPLICA_SET_MODE=secondary
- MONGODB_PRIMARY_HOST=mongodb-primary
- MONGODB_PRIMARY_PORT_NUMBER=27017
- MONGODB_PRIMARY_ROOT_PASSWORD=another_root
- MONGODB_REPLICA_SET_KEY=replicasetkey123
- MONGODB_USERNAME=genomics_user
- MONGODB_PASSWORD=another
- MONGODB_DATABASE=genomics
- MONGODB_ADVERTISED_HOSTNAME=mongodb-secondary
mongodb-arbiter:
hostname: mongodb-arbiter
image: 'bitnami/mongodb:latest'
depends_on:
- mongodb-primary
environment:
- MONGODB_REPLICA_SET_NAME=rs0
- MONGODB_REPLICA_SET_MODE=arbiter
- MONGODB_PRIMARY_HOST=mongodb-primary
- MONGODB_PRIMARY_PORT_NUMBER=27017
- MONGODB_PRIMARY_ROOT_PASSWORD=another_root
- MONGODB_REPLICA_SET_KEY=replicasetkey123
- MONGODB_USERNAME=genomics_user
- MONGODB_PASSWORD=another
- MONGODB_DATABASE=genomics
- MONGODB_ADVERTISED_HOSTNAME=mongodb-arbiter
debezium_connect:
image: debezium/connect:latest
ports:
- 8083:8083
environment:
- BOOTSTRAP_SERVERS=kafka:9092
- GROUP_ID=1
- CONFIG_STORAGE_TOPIC=my_connect_configs
- OFFSET_STORAGE_TOPIC=my_connect_offsets
links:
- kafka
- mongodb-primary
kafka:
image: debezium/kafka:latest
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "topic-jhipster:1:1"
ports:
- 9092:9092
links:
- zookeeper
zookeeper:
image: debezium/zookeeper:latest
ports:
- 2181:2181
- 2888:2888
- 3888:3888
consul:
image: consul:0.9.3
command: consul agent -dev -ui -client 0.0.0.0
ports:
- 8300:8300
- 8500:8500
- 8600:8600
consul-config-loader:
image: jhipster/consul-config-loader:v0.2.2
volumes:
- ./central-server-config:/config
environment:
- INIT_SLEEP_SECONDS=5
- CONSUL_URL=consul
- CONSUL_PORT=8500
# Uncomment to load configuration into Consul from a Git repository
# as configured in central-server-config/git2consul.json
# Also set SPRING_CLOUD_CONSUL_CONFIG_FORMAT=files on your apps
# - CONFIG_MODE=git
volumes:
mongodb_master_data:
driver: local
# networks:
# app-tier:
# driver: bridge