Files
symphony/docker-compose.yml
2024-12-13 01:41:50 +02:00

223 lines
5.0 KiB
YAML

services:
symphony-manager:
container_name: manager
build:
context: ./SymphonyManager
dockerfile: Dockerfile
ports:
- "8081:8081"
networks:
- symphony-network
depends_on:
- rabbitmq
symphony-producer:
container_name: producer
build:
context: ./SymphonyProducer
dockerfile: Dockerfile
ports:
- "8082:8082"
networks:
- symphony-network
depends_on:
- rabbitmq
node1:
container_name: node1
build:
context: ./SymphonyDatabaseNode
dockerfile: Dockerfile
ports:
- "8100:8100"
- "8105:8105/udp"
networks:
- symphony-network
environment:
- HOSTNAME=node1
- PORT=8100
- UDP_PORT=8105
depends_on:
- postgres_db
node2:
container_name: node2
build:
context: ./SymphonyDatabaseNode
dockerfile: Dockerfile
ports:
- "8101:8101"
- "8106:8106/udp"
networks:
- symphony-network
environment:
- HOSTNAME=node2
- PORT=8101
- UDP_PORT=8106
depends_on:
- postgres_db
node3:
container_name: node3
build:
context: ./SymphonyDatabaseNode
dockerfile: Dockerfile
ports:
- "8102:8102"
- "8107:8107/udp"
networks:
- symphony-network
environment:
- HOSTNAME=node3
- PORT=8102
- UDP_PORT=8107
depends_on:
- postgres_db
node4:
container_name: node4
build:
context: ./SymphonyDatabaseNode
dockerfile: Dockerfile
ports:
- "8103:8103"
- "8108:8108/udp"
networks:
- symphony-network
environment:
- HOSTNAME=node4
- PORT=8103
- UDP_PORT=8108
depends_on:
- postgres_db
node5:
container_name: node5
build:
context: ./SymphonyDatabaseNode
dockerfile: Dockerfile
ports:
- "8104:8104"
- "8109:8109/udp"
networks:
- symphony-network
environment:
- HOSTNAME=node5
- PORT=8104
- UDP_PORT=8109
depends_on:
- postgres_db
postgres_db:
image: postgres:latest
container_name: postgres_db
environment:
- POSTGRES_USER=symphony
- POSTGRES_PASSWORD=symphony
- POSTGRES_DB=symphony
volumes:
- ./config/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql
ports:
- "5432:5432"
networks:
- symphony-network
restart: always
rabbitmq:
image: "rabbitmq:management"
container_name: rabbitmq
command: >
sh -c "
rabbitmq-plugins enable --offline rabbitmq_prometheus &&
rabbitmq-server"
ports:
- "5672:5672"
- "15672:15672"
- "15692:15692"
environment:
- RABBITMQ_DEFAULT_USER=symphony
- RABBITMQ_DEFAULT_PASS=symphony
- RABBITMQ_NODENAME=rabbit@rabbitmq
- RABBITMQ_PROMETHEUS_RETENTION_POLICY=1h
volumes:
- ./config/rabbitmq/rabbit.conf:/etc/rabbitmq/rabbitmq.conf:ro
- ./config/logs/rabbitmq:/var/log/rabbitmq
networks:
- symphony-network
restart: always
prometheus:
image: prom/prometheus
container_name: prometheus
command:
- "--log.level=warn"
- "--config.file=/etc/prometheus/prometheus.yml"
ports:
- "9090:9090"
volumes:
- ./config/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
networks:
- symphony-network
grafana:
image: grafana/grafana
container_name: grafana
user: "472:472"
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_USER=symphony
- GF_SECURITY_ADMIN_PASSWORD=symphony
- GF_LOG_LEVEL=warn
- GF_DATABASE_TYPE=sqlite3
- GF_DATABASE_PATH=/var/lib/grafana/grafana.db
volumes:
- ./config/grafana/provisioning:/etc/grafana/provisioning
- ./config/grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards
- ./config/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
- ./config/grafana/provisioning/plugins:/etc/grafana/provisioning/plugins
- ./config/grafana/provisioning/alerting:/etc/grafana/provisioning/alerting
- ./config/grafana/plugins-bundled:/usr/share/grafana/plugins-bundled
- grafana-storage:/var/lib/grafana
networks:
- symphony-network
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
command:
- "--no-collector.hwmon"
- "--log.level=warn"
ports:
- "9100:9100"
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
- /run/udev:/run/udev:ro
networks:
- symphony-network
restart: always
ftp_server:
image: stilliard/pure-ftpd:hardened
container_name: ftp_server
ports:
- "21:21"
- "30000-30009:30000-30009"
environment:
FTP_USER_NAME: symphony
FTP_USER_PASS: symphony
FTP_USER_HOME: /home/symphony
networks:
- symphony-network
volumes:
- ftp_data:/home/symphony
volumes:
grafana-storage:
ftp_data:
networks:
symphony-network:
driver: bridge