version: '3.9' services: db: image: postgres:17.7 container_name: monitoring-db environment: POSTGRES_DB: monitoring_db POSTGRES_USER: adminMonitoring POSTGRES_PASSWORD: monitoringDbApp volumes: - postgres_data:/var/lib/postgresql/data ports: - "5353:5432" restart: unless-stopped monitoring: build: . container_name: monitoring-backend ports: - "${SERVER_PORT:-8083}:${SERVER_PORT:-8083}" environment: SPRING_PROFILES_ACTIVE: prod POSTGRES_HOST: db POSTGRES_PORT: 5432 POSTGRES_DB: monitoring_db POSTGRES_USER: adminMonitoring POSTGRES_PASSWORD: monitoringDbApp SERVER_PORT: ${SERVER_PORT:-8083} # SPRING_KAFKA_BOOTSTRAP_SERVERS: kafka:9092 depends_on: - db restart: unless-stopped networks: - app-network kafka: image: apache/kafka:latest container_name: kafka ports: - "9092:9092" environment: KAFKA_NODE_ID: 1 KAFKA_PROCESS_ROLES: 'broker,controller' KAFKA_CONTROLLER_QUORUM_VOTERS: '1@kafka:9093' KAFKA_LISTENERS: 'PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093' KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://kafka:9092' KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER' KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT' KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true' KAFKA_DELETE_TOPIC_ENABLE: 'true' KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_DEFAULT_REPLICATION_FACTOR: 1 KAFKA_MIN_INSYNC_REPLICAS: 1 volumes: - kafka_data:/var/lib/kafka/data networks: - app-network kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8010:8080" environment: DYNAMIC_CONFIG_ENABLED: 'true' KAFKA_CLUSTERS_0_NAME: 'local-cluster' KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: 'kafka:9092' depends_on: - kafka networks: - app-network volumes: kafka_data: postgres_data: networks: app-network: external: true