Files
documentazione/develop/docker-compose.yaml

131 lines
3.3 KiB
YAML

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: