networks: default: driver: bridge ipam: driver: default config: - subnet: 172.19.0.0/16 services: loki: image: grafana/loki:2.9.4 container_name: loki ports: - "3100:3100" command: -config.file=/etc/loki/local-config.yaml volumes: - ./loki-config.yaml:/etc/loki/local-config.yaml:ro - loki-data:/loki networks: default: ipv4_address: 172.19.0.2 grafana: image: grafana/grafana:11.0.0 container_name: grafana ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin volumes: - grafana-data:/var/lib/grafana networks: default: ipv4_address: 172.19.0.3 depends_on: - loki pgsql: image: postgres:17 # restart: unless-stopped container_name: postgresql volumes: - postgresql-data:/var/lib/postgresql/data - ./init-db.sh:/docker-entrypoint-initdb.d/init-db.sh:ro networks: default: ipv4_address: 172.19.0.4 ports: - target: 5432 published: 5432 protocol: tcp mode: host environment: - POSTGRES_PASSWORD=Creative26! # 9002 porta per la comunicazione tra container # 9003 porta per la connessione fuori da docker # 9004 porta quorumdei controller kraft kafka: image: apache/kafka:4.2.0 container_name: kafka networks: default: ipv4_address: 172.19.0.5 ports: - "9092:9092" environment: # Rimosso il prefisso _CFG_ - KAFKA_NODE_ID=1 - KAFKA_PROCESS_ROLES=broker,controller - KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER - KAFKA_LISTENERS=PLAINTEXT://:9092,EXTERNAL://:9094,CONTROLLER://:9093 - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://localhost:9094 - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT - KAFKA_CONTROLLER_QUORUM_VOTERS=1@kafka:9093 # Variabile fondamentale per l'immagine Apache in modalita KRaft - KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT # localhost:9001 interfaccia per esplorare topic e consumer kafdrop: image: obsidiandynamics/kafdrop:4.2.0 container_name: kafdrop ports: - "9001:9001" environment: - KAFKA_BROKERCONNECT=kafka:9092 - SERVER_PORT=9001 depends_on: - kafka networks: default: ipv4_address: 172.19.0.6 #keycloak - in prod comand: start keycloak: image: quay.io/keycloak/keycloak:26.5.6 container_name: keycloak environment: KC_BOOTSTRAP_ADMIN_USERNAME: admin KC_BOOTSTRAP_ADMIN_PASSWORD: Creative26! # utilizza utenza di root KC_DB: postgres KC_DB_URL: jdbc:postgresql://pgsql:5432/keycloak KC_DB_USERNAME: postgres KC_DB_PASSWORD: Creative26! KC_HOSTNAME: localhost KC_HOSTNAME_PORT: 8080 KC_HOSTNAME_STRICT: 'false' KC_HOSTNAME_STRICT_HTTPS: 'false' #KC_FEATURES: scripts non utilizzato piu KC_LOG_LEVEL: info KC_METRICS_ENABLED: 'true' KC_HEALTH_ENABLED: 'true' command: start-dev ports: - '8080:8080' depends_on: - pgsql networks: default: ipv4_address: 172.19.0.7 volumes: loki-data: grafana-data: postgresql-data: