M1-PE-Kafka/docker-compose.yaml

92 lines
No EOL
2 KiB
YAML

version: '3.5'
services:
# Handle the coordination between the kafka images
zookeeper:
image: bitnami/zookeeper
ports:
- "2181:2181"
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
volumes:
- "zookeeper_data:/bitnami"
networks:
- kafka
# The event system
kafka:
image: bitnami/kafka
ports:
- "9092:9092"
environment:
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
volumes:
- "kafka_data:/bitnami"
networks:
- kafka
depends_on:
- zookeeper
# Our producer
producer:
build:
context: ./applications/producer
dockerfile: ./src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm}
environment:
KAFKA_BOOTSTRAP_SERVERS: kafka:9092
TEMPERATURE_TOPIC: "temperature-celsius"
TEMPERATURE_LOCATION: 49.9, 2.3
networks:
- kafka
depends_on:
- kafka
# Our consumer
consumer:
build:
context: ./applications/consumer
dockerfile: ./src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm}
ports:
- "8080:8080"
environment:
KAFKA_BOOTSTRAP_SERVERS: kafka:9092
TEMPERATURE_TOPIC: "temperature-fahrenheit"
healthcheck:
test: curl --fail http://localhost:8080/v1/ping
start_period: 10s
timeout: 5s
interval: 60s
retries: 3
networks:
- kafka
depends_on:
- kafka
# Our converter
converter:
build:
context: ./applications/converter
dockerfile: ./src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm}
environment:
KAFKA_BOOTSTRAP_SERVERS: kafka:9092
TEMPERATURE_CELSIUS_TOPIC: "temperature-celsius"
TEMPERATURE_FAHRENHEIT_TOPIC: "temperature-fahrenheit"
networks:
- kafka
depends_on:
- kafka
- producer
- consumer
networks:
# the Kafka network
kafka:
name: kafka
volumes:
# the Zookeeper permanent data
zookeeper_data:
driver: local
# the Kafka permanent data
kafka_data:
driver: local