Newer
Older
version: '3.8'
services:
# Dashboard für Metriken
grafana:
image: grafana/grafana-oss:latest
container_name: grafana
ports:
- "127.0.0.1:3000:3000"
volumes:
- ./monitoring/grafana-data:/var/lib/grafana
restart: unless-stopped
# TSDB zum Speichern der Metriken
prometheus:
image: prom/prometheus:v2.37.9
container_name: prometheus
ports:
- 127.0.0.1:9090:9090
command:
- "--config.file=/etc/prometheus/prometheus.yml"
- '--web.enable-admin-api'
volumes:
- ./monitoring/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml
- ./monitoring/prometheus/data:/prometheus
restart: unless-stopped
# Container Advisor - Docker Compose Metriken zu scrapen
cadvisor:
image: gcr.io/cadvisor/cadvisor:v0.47.0
container_name: cadvisor
ports:
- 8080:8080
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:rob
- /dev/disk/:/dev/disk:ro
devices:
- /dev/kmsg
privileged: true
restart: unless-stopped
# Exporter für Postgres Statistiken/Metriken
postgres_exporter:
image: bitnami/postgres-exporter:latest
ports:
- 9187:9187
environment:
- DATA_SOURCE_NAME=postgresql://postgres:postgres@postgres:5432/postgres?sslmode=disable
depends_on:
- postgres
# DB Container memgraph (testweise)
memgraph:
image: memgraph/memgraph-platform
container_name: memgraph
ports:
- "8687:7687"
- "8444:7444"
- "3001:3000"
environment:
- mem_host=bolt://memgraph:7687
- abort_time=999999
- mos_host=mos1
- mos_port=1883
healthcheck:
test: ["CMD", "mgconsole"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
# Datenbank Container - Neo4j
neo4j:
image: neo4j:enterprise
container_name: neo4j
volumes:
- ./neo4j/container_e/data:/data
- ./neo4j/container_e/logs:/logs
- ./neo4j/container_e/import:/var/lib/neo4j/import
- ./neo4j/container_e/conf:/var/lib/neo4j/conf
ports:
- 7474:7474
- 7687:7687
- 2004:2004
environment:
- NEO4J_AUTH=none
- NEO4J_server_metrics_prometheus_enabled=true
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
- NEO4J_server_metrics_prometheus_endpoint=0.0.0.0:2004
healthcheck:
test: ["CMD", "wget", "http://neo4j:7474"]
interval: 30s
timeout: 10s
retries: 5
# Datenbank Container - Postgres
postgres:
image: postgres:latest
container_name: postgres
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready","-U postgres"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s
logging:
options:
max-size: 10m
max-file: "3"
ports:
- 5432:5432
volumes:
- ./sql/docker/data:/var/lib/postgresql/data
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
# copy the sql script to create tables
- ./sql/skript/import_cadets:/opt/import_cadets
# Admin GUI Postgres
pgadmin:
image: dpage/pgadmin4:latest
container_name: pgadmin4_container
ports:
- "8888:80"
environment:
PGADMIN_DEFAULT_EMAIL: admin@abc.de
PGADMIN_DEFAULT_PASSWORD: admin
volumes:
- ./sql/pgadmin-data:/var/lib/pgadmin
# Infrakstruktur zum Publishen und Streamen von CDM Daten
mosquitto:
container_name: mos1
image: eclipse-mosquitto
ports:
- 1883:1883
- 9001:9001
- 8883:8883
volumes:
- ./streaming/mosquitto.conf:/mosquitto/config/mosquitto.conf
- ./streaming/log/mosquitto.log:/mosquitto/log/mosquitto.log
image: lab.it.hs-hannover.de:4567/cwy-p8d-u1/ma_code/sub_pg
volumes:
- ./streaming/clients/sub/postgres/:/var/lib/import/
environment:
- path_sql_script=/var/lib/import/
depends_on:
postgres:
condition: service_healthy
restart: true
image: lab.it.hs-hannover.de:4567/cwy-p8d-u1/ma_code/sub_neo4j
environment:
- abort_time_limit=999999
- neo4j_host=bolt://neo4j:7687
- mos_host=mos1
- mos_port=1883
depends_on:
neo4j:
condition: service_healthy
restart: true
restart: on-failure
sub_mem:
container_name: sub_mem
image: lab.it.hs-hannover.de:4567/cwy-p8d-u1/ma_code/sub_mem
environment:
- abort_time_limit=999999
- mem_host=bolt://memgraph:7687
- mos_host=mos1
- mos_port=1883
depends_on:
memgraph:
condition: service_healthy
restart: true
image: lab.it.hs-hannover.de:4567/cwy-p8d-u1/ma_code/pub_cdm
- path_to_firstK=/var/lib/import/first1k.json
- path_data=/var/lib/import/
volumes:
- ./streaming/clients/pub/data:/var/lib/import
# condition: service_healthy
# restart: true
# command: ["dockerize", "-wait", "http://neo4j:7474", "ls"]
volumes:
postgres:
pgadmin:
prometheus-data:
driver: local
neo4j:
networks:
postgres:
external: true
# mosquitto:
# name: mosquitto
# driver: bridge
# external: true