카프카를 통한 데이터 파이프라인을 구축하기 위해, 로컬에 docker image로 먼저 카프카를 구축한다.
version: '2'
services:
zookeeper:
image: zookeeper:3.8.1 # wurstmeister/zookeeper 는 오히려 M1 안됨
container_name: zookeeper
ports:
- "2181:2181"
networks:
- pipeline
kafka:
#build: .
image: wurstmeister/kafka:2.13-2.8.1 # M1 때문..
container_name: kafka
ports:
- 9092:9092
- 29092:29092
environment:
DOCKER_API_VERSION: 1.22
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_LISTENERS: INTERNAL://kafka:29092,EXTERNAL://localhost:9092
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:29092,EXTERNAL://localhost:9092
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_NUM_PARTITIONS: 3
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- pipeline
kafka-ui:
image: provectuslabs/kafka-ui
container_name: kafka-ui
ports:
- "8989:8080"
restart: always
environment:
KAFKA_CLUSTERS_0_NAME: kafka_test
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: INTERNAL://kafka:29092,EXTERNAL://localhost:9092
KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181
networks:
- pipeline
networks:
pipeline:
driver: bridge