refactoring Single Source of Truth

This commit is contained in:
2025-09-13 23:55:34 +02:00
parent 8eb7e6f773
commit 01831f7c2b
6 changed files with 101 additions and 62 deletions
+75 -59
View File
@@ -104,69 +104,85 @@ services:
# ===================================================================
# Auth Server (Custom Keycloak Extension)
# ===================================================================
# auth-server:
# build:
# context: .
# dockerfile: dockerfiles/infrastructure/auth-server/Dockerfile
# container_name: meldestelle-auth-server
# environment:
# SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-dev}
# SERVER_PORT: ${AUTH_SERVICE_PORT:-8087}
# KEYCLOAK_SERVER_URL: http://keycloak:8080
# KEYCLOAK_REALM: meldestelle
# KEYCLOAK_CLIENT_ID: meldestelle-auth-service
# KEYCLOAK_CLIENT_SECRET: ${KEYCLOAK_CLIENT_SECRET:-auth-service-secret}
# DB_HOST: postgres
# DB_PORT: 5432
# DB_NAME: ${POSTGRES_DB:-meldestelle}
# DB_USER: ${POSTGRES_USER:-meldestelle}
# DB_PASSWORD: ${POSTGRES_PASSWORD:-meldestelle}
# JWT_SECRET: ${JWT_SECRET:-meldestelle-jwt-secret-key-for-development-change-in-production}
# JWT_ISSUER: ${JWT_ISSUER:-meldestelle-api}
# JWT_AUDIENCE: ${JWT_AUDIENCE:-meldestelle-clients}
# ports:
# - "${AUTH_SERVICE_PORT:-8087}:${AUTH_SERVICE_PORT:-8087}"
# networks:
# - meldestelle-network
# healthcheck:
# test: ["CMD", "curl", "--fail", "http://localhost:${AUTH_SERVICE_PORT:-8087}/actuator/health"]
# interval: 30s
# timeout: 10s
# retries: 3
# start_period: 60s
# restart: unless-stopped
auth-server:
build:
context: .
dockerfile: dockerfiles/infrastructure/auth-server/Dockerfile
args:
# Global build arguments (from docker/build-args/global.env)
GRADLE_VERSION: ${DOCKER_GRADLE_VERSION:-9.0.0}
JAVA_VERSION: ${DOCKER_JAVA_VERSION:-21}
BUILD_DATE: ${BUILD_DATE}
VERSION: ${DOCKER_APP_VERSION:-1.0.0}
# Infrastructure-specific arguments (from docker/build-args/infrastructure.env)
SPRING_PROFILES_ACTIVE: ${DOCKER_SPRING_PROFILES_DEFAULT:-default}
container_name: meldestelle-auth-server
environment:
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-dev}
SERVER_PORT: ${AUTH_SERVICE_PORT:-8087}
KEYCLOAK_SERVER_URL: http://keycloak:8080
KEYCLOAK_REALM: meldestelle
KEYCLOAK_CLIENT_ID: meldestelle-auth-service
KEYCLOAK_CLIENT_SECRET: ${KEYCLOAK_CLIENT_SECRET:-auth-service-secret}
DB_HOST: postgres
DB_PORT: 5432
DB_NAME: ${POSTGRES_DB:-meldestelle}
DB_USER: ${POSTGRES_USER:-meldestelle}
DB_PASSWORD: ${POSTGRES_PASSWORD:-meldestelle}
JWT_SECRET: ${JWT_SECRET:-meldestelle-jwt-secret-key-for-development-change-in-production}
JWT_ISSUER: ${JWT_ISSUER:-meldestelle-api}
JWT_AUDIENCE: ${JWT_AUDIENCE:-meldestelle-clients}
ports:
- "${AUTH_SERVICE_PORT:-8087}:${AUTH_SERVICE_PORT:-8087}"
networks:
- meldestelle-network
healthcheck:
test: ["CMD", "curl", "--fail", "http://localhost:${AUTH_SERVICE_PORT:-8087}/actuator/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
restart: unless-stopped
# ===================================================================
# Monitoring Server (Custom Grafana Extensions)
# ===================================================================
# monitoring-server:
# build:
# context: .
# dockerfile: dockerfiles/infrastructure/monitoring-server/Dockerfile
# container_name: meldestelle-monitoring-server
# environment:
# SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-dev}
# SERVER_PORT: 8088
# GRAFANA_URL: http://grafana:3000
# PROMETHEUS_URL: http://prometheus:9090
# GRAFANA_ADMIN_USER: ${GF_SECURITY_ADMIN_USER:-admin}
# GRAFANA_ADMIN_PASSWORD: ${GF_SECURITY_ADMIN_PASSWORD:-admin}
# METRICS_AUTH_USERNAME: ${METRICS_AUTH_USERNAME:-admin}
# METRICS_AUTH_PASSWORD: ${METRICS_AUTH_PASSWORD:-metrics}
# ports:
# - "8088:8088"
# networks:
# - meldestelle-network
# healthcheck:
# test: ["CMD", "curl", "--fail", "http://localhost:8088/actuator/health"]
# interval: 30s
# timeout: 10s
# retries: 3
# start_period: 60s
# restart: unless-stopped
# volumes:
# - monitoring-data:/app/data
# - ./docker/monitoring:/app/config:ro
monitoring-server:
build:
context: .
dockerfile: dockerfiles/infrastructure/monitoring-server/Dockerfile
args:
# Global build arguments (from docker/build-args/global.env)
GRADLE_VERSION: ${DOCKER_GRADLE_VERSION:-9.0.0}
JAVA_VERSION: ${DOCKER_JAVA_VERSION:-21}
BUILD_DATE: ${BUILD_DATE}
VERSION: ${DOCKER_APP_VERSION:-1.0.0}
# Infrastructure-specific arguments (from docker/build-args/infrastructure.env)
SPRING_PROFILES_ACTIVE: ${DOCKER_SPRING_PROFILES_DEFAULT:-default}
container_name: meldestelle-monitoring-server
environment:
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-dev}
SERVER_PORT: 8088
GRAFANA_URL: http://grafana:3000
PROMETHEUS_URL: http://prometheus:9090
GRAFANA_ADMIN_USER: ${GF_SECURITY_ADMIN_USER:-admin}
GRAFANA_ADMIN_PASSWORD: ${GF_SECURITY_ADMIN_PASSWORD:-admin}
METRICS_AUTH_USERNAME: ${METRICS_AUTH_USERNAME:-admin}
METRICS_AUTH_PASSWORD: ${METRICS_AUTH_PASSWORD:-metrics}
ports:
- "8088:8088"
networks:
- meldestelle-network
healthcheck:
test: ["CMD", "curl", "--fail", "http://localhost:8088/actuator/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
restart: unless-stopped
volumes:
- monitoring-data:/app/data
- ./docker/monitoring:/app/config:ro
# ===================================================================
# Volumes für Client-spezifische Daten