meldestelle/docker-compose.services.yml

233 lines
7.9 KiB
YAML

# ===================================================================
# Docker Compose - Microservices
# Meldestelle Project - Application Services
# ===================================================================
# Usage:
# Vollständiges System: docker-compose -f docker-compose.yml -f docker-compose.services.yml up -d
# ===================================================================
services:
# ===================================================================
# Ping Service (Health Check & Test Service)
# ===================================================================
ping-service:
build:
context: .
dockerfile: dockerfiles/services/ping-service/Dockerfile
container_name: meldestelle-ping-service
environment:
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-dev}
SERVER_PORT: ${PING_SERVICE_PORT:-8082}
CONSUL_HOST: consul
CONSUL_PORT: ${CONSUL_PORT:-8500}
CONSUL_ENABLED: true
DB_HOST: postgres
DB_PORT: 5432
DB_NAME: ${POSTGRES_DB:-meldestelle}
DB_USER: ${POSTGRES_USER:-meldestelle}
DB_PASSWORD: ${POSTGRES_PASSWORD:-meldestelle}
REDIS_EVENT_STORE_HOST: redis
REDIS_EVENT_STORE_PORT: 6379
REDIS_EVENT_STORE_PASSWORD: ${REDIS_PASSWORD:-}
ports:
- "${PING_SERVICE_PORT:-8082}:${PING_SERVICE_PORT:-8082}"
depends_on:
consul:
condition: service_healthy
postgres:
condition: service_healthy
redis:
condition: service_healthy
networks:
- meldestelle-network
healthcheck:
test: ["CMD", "curl", "--fail", "http://localhost:${PING_SERVICE_PORT:-8082}/actuator/health"]
interval: 15s
timeout: 5s
retries: 3
start_period: 30s
restart: unless-stopped
# ===================================================================
# Members Service
# ===================================================================
# members-service:
# build:
# context: .
# dockerfile: dockerfiles/services/members-service/Dockerfile
# container_name: meldestelle-members-service
# environment:
# SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-dev}
# SERVER_PORT: ${MEMBERS_SERVICE_PORT:-8083}
# CONSUL_HOST: consul
# CONSUL_PORT: ${CONSUL_PORT:-8500}
# CONSUL_ENABLED: ${CONSUL_ENABLED:-true}
# DB_HOST: postgres
# DB_PORT: 5432
# DB_NAME: ${POSTGRES_DB:-meldestelle}
# DB_USER: ${POSTGRES_USER:-meldestelle}
# DB_PASSWORD: ${POSTGRES_PASSWORD:-meldestelle}
# REDIS_EVENT_STORE_HOST: redis
# REDIS_EVENT_STORE_PORT: 6379
# REDIS_EVENT_STORE_PASSWORD: ${REDIS_PASSWORD:-}
# KAFKA_BOOTSTRAP_SERVERS: kafka:29092
# ports:
# - "${MEMBERS_SERVICE_PORT:-8083}:${MEMBERS_SERVICE_PORT:-8083}"
# depends_on:
# consul:
# condition: service_healthy
# postgres:
# condition: service_healthy
# redis:
# condition: service_healthy
# kafka:
# condition: service_healthy
# networks:
# - meldestelle-network
# healthcheck:
# test: ["CMD", "curl", "--fail", "http://localhost:${MEMBERS_SERVICE_PORT:-8083}/actuator/health"]
# interval: 15s
# timeout: 5s
# retries: 3
# start_period: 30s
# restart: unless-stopped
# ===================================================================
# Horses Service
# ===================================================================
# horses-service:
# build:
# context: .
# dockerfile: dockerfiles/services/horses-service/Dockerfile
# container_name: meldestelle-horses-service
# environment:
# SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-dev}
# SERVER_PORT: ${HORSES_SERVICE_PORT:-8084}
# CONSUL_HOST: consul
# CONSUL_PORT: ${CONSUL_PORT:-8500}
# CONSUL_ENABLED: ${CONSUL_ENABLED:-true}
# DB_HOST: postgres
# DB_PORT: 5432
# DB_NAME: ${POSTGRES_DB:-meldestelle}
# DB_USER: ${POSTGRES_USER:-meldestelle}
# DB_PASSWORD: ${POSTGRES_PASSWORD:-meldestelle}
# REDIS_EVENT_STORE_HOST: redis
# REDIS_EVENT_STORE_PORT: 6379
# REDIS_EVENT_STORE_PASSWORD: ${REDIS_PASSWORD:-}
# KAFKA_BOOTSTRAP_SERVERS: kafka:29092
# ports:
# - "${HORSES_SERVICE_PORT:-8084}:${HORSES_SERVICE_PORT:-8084}"
# depends_on:
# consul:
# condition: service_healthy
# postgres:
# condition: service_healthy
# redis:
# condition: service_healthy
# kafka:
# condition: service_healthy
# networks:
# - meldestelle-network
# healthcheck:
# test: ["CMD", "curl", "--fail", "http://localhost:${HORSES_SERVICE_PORT:-8084}/actuator/health"]
# interval: 15s
# timeout: 5s
# retries: 3
# start_period: 30s
# restart: unless-stopped
# ===================================================================
# Events Service
# ===================================================================
# events-service:
# build:
# context: .
# dockerfile: dockerfiles/services/events-service/Dockerfile
# container_name: meldestelle-events-service
# environment:
# SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-dev}
# SERVER_PORT: ${EVENTS_SERVICE_PORT:-8085}
# CONSUL_HOST: consul
# CONSUL_PORT: ${CONSUL_PORT:-8500}
# CONSUL_ENABLED: ${CONSUL_ENABLED:-true}
# DB_HOST: postgres
# DB_PORT: 5432
# DB_NAME: ${POSTGRES_DB:-meldestelle}
# DB_USER: ${POSTGRES_USER:-meldestelle}
# DB_PASSWORD: ${POSTGRES_PASSWORD:-meldestelle}
# REDIS_EVENT_STORE_HOST: redis
# REDIS_EVENT_STORE_PORT: 6379
# REDIS_EVENT_STORE_PASSWORD: ${REDIS_PASSWORD:-}
# KAFKA_BOOTSTRAP_SERVERS: kafka:29092
# ports:
# - "${EVENTS_SERVICE_PORT:-8085}:${EVENTS_SERVICE_PORT:-8085}"
# depends_on:
# consul:
# condition: service_healthy
# postgres:
# condition: service_healthy
# redis:
# condition: service_healthy
# kafka:
# condition: service_healthy
# networks:
# - meldestelle-network
# healthcheck:
# test: ["CMD", "curl", "--fail", "http://localhost:${EVENTS_SERVICE_PORT:-8085}/actuator/health"]
# interval: 15s
# timeout: 5s
# retries: 3
# start_period: 30s
# restart: unless-stopped
# ===================================================================
# Masterdata Service
# ===================================================================
# masterdata-service:
# build:
# context: .
# dockerfile: dockerfiles/services/masterdata-service/Dockerfile
# container_name: meldestelle-masterdata-service
# environment:
# SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-dev}
# SERVER_PORT: ${MASTERDATA_SERVICE_PORT:-8086}
# CONSUL_HOST: consul
# CONSUL_PORT: ${CONSUL_PORT:-8500}
# CONSUL_ENABLED: ${CONSUL_ENABLED:-true}
# DB_HOST: postgres
# DB_PORT: 5432
# DB_NAME: ${POSTGRES_DB:-meldestelle}
# DB_USER: ${POSTGRES_USER:-meldestelle}
# DB_PASSWORD: ${POSTGRES_PASSWORD:-meldestelle}
# REDIS_EVENT_STORE_HOST: redis
# REDIS_EVENT_STORE_PORT: 6379
# REDIS_EVENT_STORE_PASSWORD: ${REDIS_PASSWORD:-}
# KAFKA_BOOTSTRAP_SERVERS: kafka:29092
# ports:
# - "${MASTERDATA_SERVICE_PORT:-8086}:${MASTERDATA_SERVICE_PORT:-8086}"
# depends_on:
# consul:
# condition: service_healthy
# postgres:
# condition: service_healthy
# redis:
# condition: service_healthy
# kafka:
# condition: service_healthy
# networks:
# - meldestelle-network
# healthcheck:
# test: ["CMD", "curl", "--fail", "http://localhost:${MASTERDATA_SERVICE_PORT:-8086}/actuator/health"]
# interval: 15s
# timeout: 5s
# retries: 3
# start_period: 30s
# restart: unless-stopped
# ===================================================================
# Networks (shared network from main compose file)
# ===================================================================
networks:
meldestelle-network:
external: true