#
# 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: "3.9"
services:
  zookeeper:
    container_name: zookeeper
    hostname: zookeeper
    image: zookeeper:latest
    volumes:
      - zk_data:/data
      - zk_datalog:/datalog
      - zk_logs:/logs
    ports:
      - "2181:2181"

  drillbit:
    # container_name not set so that --scale can be used
    image: apache/drill-cluster-mode:latest
    volumes:
      - drill_data:/data
    ports:
      - "8047:8047"   # user HTTP, replace with just "8047" for --scale
      - "31010:31010" # user RPC and JDBC, replace with just "31010" for --scale
    depends_on: ["zookeeper"]
    environment:
      - DRILL_MAX_PROC_MEM=8G

volumes:
  zk_data:
  zk_datalog:
  zk_logs:
  drill_data:
