Copy version: '3.7'
services:
pinot-zookeeper:
image: ${ZK_IMAGE:-zookeeper:3.9.2}
container_name: "pinot-zookeeper"
restart: unless-stopped
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
networks:
- pinot-demo
healthcheck:
test: ["CMD", "zkServer.sh", "status"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s
pinot-controller:
image: ${PINOT_IMAGE:-apachepinot/pinot:1.4.0}
command: "StartController -zkAddress pinot-zookeeper:2181"
container_name: "pinot-controller"
restart: unless-stopped
ports:
- "9000:9000"
environment:
JAVA_OPTS: "-Dplugins.dir=/opt/pinot/plugins -Xms1G -Xmx4G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-controller.log"
depends_on:
pinot-zookeeper:
condition: service_healthy
networks:
- pinot-demo
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:9000/health || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s
pinot-broker:
image: ${PINOT_IMAGE:-apachepinot/pinot:1.4.0}
command: "StartBroker -zkAddress pinot-zookeeper:2181"
container_name: "pinot-broker"
restart: unless-stopped
ports:
- "8099:8099"
environment:
JAVA_OPTS: "-Dplugins.dir=/opt/pinot/plugins -Xms4G -Xmx4G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-broker.log"
depends_on:
pinot-controller:
condition: service_healthy
networks:
- pinot-demo
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8099/health || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s
pinot-server:
image: ${PINOT_IMAGE:-apachepinot/pinot:1.4.0}
command: "StartServer -zkAddress pinot-zookeeper:2181"
container_name: "pinot-server"
restart: unless-stopped
ports:
- "8098:8098"
environment:
JAVA_OPTS: "-Dplugins.dir=/opt/pinot/plugins -Xms4G -Xmx16G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-server.log"
depends_on:
pinot-broker:
condition: service_healthy
networks:
- pinot-demo
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8097/health/readiness || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s
pinot-minion:
image: ${PINOT_IMAGE:-apachepinot/pinot:1.4.0}
command: "StartMinion -zkAddress pinot-zookeeper:2181"
restart: unless-stopped
container_name: "pinot-minion"
ports:
- "6000:6000"
depends_on:
- pinot-broker
networks:
- pinot-demo
pinot-kafka:
image: ${KAFKA_IMAGE:-bitnami/kafka:3.6}
container_name: "kafka"
restart: unless-stopped
ports:
- "9092:9092"
environment:
KAFKA_ZOOKEEPER_CONNECT: pinot-zookeeper:2181/kafka
KAFKA_BROKER_ID: 0
KAFKA_ADVERTISED_HOST_NAME: kafka
depends_on:
pinot-zookeeper:
condition: service_healthy
networks:
- pinot-demo
healthcheck:
test: ["CMD-SHELL", "kafka-broker-api-versions.sh -bootstrap-server kafka:9092"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s
deploy:
replicas: ${KAFKA_REPLICAS:-0}
networks:
pinot-demo:
name: pinot-demo
driver: bridge