# # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # --- version: "2.2" volumes: metadata_data: {} middle_var: {} historical_var: {} broker_var: {} coordinator_var: {} router_var: {} druid_shared: {} services: postgres: image: postgres:latest container_name: postgres profiles: ["druid-jupyter", "all-services"] volumes: - metadata_data:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=FoolishPassword - POSTGRES_USER=druid - POSTGRES_DB=druid # Need 3.5 or later for container nodes zookeeper: image: zookeeper:latest container_name: zookeeper profiles: ["druid-jupyter", "kafka-jupyter", "all-services"] environment: - ZOO_MY_ID=1 - ALLOW_ANONYMOUS_LOGIN=yes kafka: image: bitnami/kafka:latest container_name: kafka-broker profiles: ["kafka-jupyter", "all-services"] ports: # To learn about configuring Kafka for access across networks see # https://www.confluent.io/blog/kafka-client-cannot-connect-to-broker-on-aws-on-docker-etc/ - "9092:9092" - '9094:9094' depends_on: - zookeeper environment: - KAFKA_BROKER_ID=1 - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094 - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://localhost:9094 - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 - ALLOW_PLAINTEXT_LISTENER=yes - KAFKA_ENABLE_KRAFT=false coordinator: image: apache/druid:${DRUID_VERSION} container_name: coordinator profiles: ["druid-jupyter", "all-services"] volumes: - druid_shared:/opt/shared - coordinator_var:/opt/druid/var depends_on: - zookeeper - postgres ports: - "8081:8081" command: - coordinator env_file: - environment broker: image: apache/druid:${DRUID_VERSION} container_name: broker profiles: ["druid-jupyter", "all-services"] volumes: - broker_var:/opt/druid/var depends_on: - zookeeper - postgres - coordinator ports: - "8082:8082" command: - broker env_file: - environment historical: image: apache/druid:${DRUID_VERSION} container_name: historical profiles: ["druid-jupyter", "all-services"] volumes: - druid_shared:/opt/shared - historical_var:/opt/druid/var depends_on: - zookeeper - postgres - coordinator ports: - "8083:8083" command: - historical env_file: - environment middlemanager: image: apache/druid:${DRUID_VERSION} container_name: middlemanager profiles: ["druid-jupyter", "all-services"] volumes: - druid_shared:/opt/shared - middle_var:/opt/druid/var depends_on: - zookeeper - postgres - coordinator ports: - "8091:8091" - "8100-8105:8100-8105" command: - middleManager env_file: - environment router: image: apache/druid:${DRUID_VERSION} container_name: router profiles: ["druid-jupyter", "all-services"] volumes: - router_var:/opt/druid/var depends_on: - zookeeper - postgres - coordinator ports: - "8888:8888" command: - router env_file: - environment jupyter: build: context: .. dockerfile: Dockerfile container_name: jupyter profiles: ["jupyter", "kafka-jupyter", "druid-jupyter", "all-services"] environment: JUPYTER_ENABLE_LAB: "yes" JUPYTER_TOKEN: "docker" DOCKER_STACKS_JUPYTER_CMD: "lab" NOTEBOOK_ARGS: "--NotebookApp.token=''" ports: - "${JUPYTER_PORT:-8889}:8888" volumes: - ../notebooks:/home/jovyan/notebooks