random-walk-pipeline/docker-compose.yml

118 lines
3.7 KiB
YAML
Raw Permalink Normal View History

2024-01-01 18:05:40 +00:00
services:
app:
build: ./app
container_name: python_app
kafka1:
image: confluentinc/cp-kafka:7.2.1
container_name: kafka1
environment:
KAFKA_NODE_ID: 1
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_LISTENERS: PLAINTEXT://kafka1:9092,CONTROLLER://kafka1:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092
KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
KAFKA_CONTROLLER_QUORUM_VOTERS: '1@kafka1:9093,2@kafka2:9093,3@kafka3:9093'
KAFKA_PROCESS_ROLES: 'broker,controller'
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
volumes:
- ./kafka/run_workaround.sh:/tmp/run_workaround.sh
command: "bash -c '/tmp/run_workaround.sh && /etc/confluent/docker/run'"
healthcheck:
test: ["CMD-SHELL", "kafka-broker-api-versions.sh --bootstrap-server=kafka1:9092"]
interval: 30s
timeout: 10s
retries: 5
kafka2:
image: confluentinc/cp-kafka:7.2.1
container_name: kafka2
environment:
KAFKA_NODE_ID: 2
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_LISTENERS: PLAINTEXT://kafka2:9092,CONTROLLER://kafka2:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092
KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
KAFKA_CONTROLLER_QUORUM_VOTERS: '1@kafka1:9093,2@kafka2:9093,3@kafka3:9093'
KAFKA_PROCESS_ROLES: 'broker,controller'
volumes:
- ./kafka/run_workaround.sh:/tmp/run_workaround.sh
command: "bash -c '/tmp/run_workaround.sh && /etc/confluent/docker/run'"
healthcheck:
test: ["CMD-SHELL", "kafka-broker-api-versions.sh --bootstrap-server=kafka2:9092"]
interval: 30s
timeout: 10s
retries: 5
kafka3:
image: confluentinc/cp-kafka:7.2.1
container_name: kafka3
environment:
KAFKA_NODE_ID: 3
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_LISTENERS: PLAINTEXT://kafka3:9092,CONTROLLER://kafka3:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka3:9092
KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
KAFKA_CONTROLLER_QUORUM_VOTERS: '1@kafka1:9093,2@kafka2:9093,3@kafka3:9093'
KAFKA_PROCESS_ROLES: 'broker,controller'
volumes:
- ./kafka/run_workaround.sh:/tmp/run_workaround.sh
command: "bash -c '/tmp/run_workaround.sh && /etc/confluent/docker/run'"
healthcheck:
test: ["CMD-SHELL", "kafka-broker-api-versions.sh --bootstrap-server=kafka3:9092"]
interval: 30s
timeout: 10s
retries: 5
#Ici nous définissons un service nous permettant d'avoir une interface graphique pour kafka
kafka-ui:
image: provectuslabs/kafka-ui:latest
container_name: kafka-ui
ports:
- "8888:8080" # Port pour accéder à Kafka UI
environment:
KAFKA_CLUSTERS_0_NAME: "local" # Nom du cluster
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: "kafka1:9092,kafka2:9092,kafka3:9092" # Brokers Kafka
depends_on:
- kafka1
- kafka2
- kafka3
telegraf:
image: telegraf:1.19
volumes:
- ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:rw
env_file:
- ./telegraf/.env
- ./influxdb/.env
influxdb:
image: influxdb:2.1.1
volumes:
- ./influxdb/entrypoint.sh:/docker-entrypoint-initdb.d/entrypoint.sh:ro
- influxdb:/var/lib/influxdb2:rw
env_file:
- ./influxdb/.env
entrypoint: ["./entrypoint.sh"]
restart: on-failure:10
ports:
- 8086:8086
grafana:
image: grafana/grafana-oss:8.4.3
env_file:
- ./grafana/.env
volumes:
- grafana-storage:/var/lib/grafana:rw
depends_on:
- influxdb
ports:
- ${GRAFANA_PORT}:3000
volumes:
influxdb:
grafana-storage: