# 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"
services:
  kdc:
    build:
      context: docker-image/docker-krb5
      dockerfile: Dockerfile-krb5
      args:
        buildno: 1
    hostname: kdc
    volumes:
      - ../..:/opt/hadoop
  kms:
      image: apache/hadoop:${HADOOP_VERSION}
      ports:
      - 9600:9600
      env_file:
      - ./docker-config
      command: ["hadoop", "kms"]
  datanode:
    image: apache/ozone-runner:${HADOOP_RUNNER_VERSION}
    volumes:
      - ../..:/opt/hadoop
    ports:
      - 9864
    command: ["/opt/hadoop/bin/ozone","datanode"]
    env_file:
      - docker-config
  om:
    image: apache/ozone-runner:${HADOOP_RUNNER_VERSION}
    hostname: om
    volumes:
      - ../..:/opt/hadoop
    ports:
      - 9874:9874
    environment:
      ENSURE_OM_INITIALIZED: /data/metadata/om/current/VERSION
    env_file:
      - docker-config
    command: ["/opt/hadoop/bin/ozone","om"]
  s3g:
    image: apache/ozone-runner:${HADOOP_RUNNER_VERSION}
    hostname: s3g
    volumes:
      - ../..:/opt/hadoop
    ports:
      - 9878:9878
    env_file:
      - ./docker-config
    command: ["/opt/hadoop/bin/ozone","s3g"]
  scm:
    image: apache/ozone-runner:${HADOOP_RUNNER_VERSION}
    hostname: scm
    volumes:
      - ../..:/opt/hadoop
    ports:
      - 9876:9876
    env_file:
      - docker-config
    environment:
      ENSURE_SCM_INITIALIZED: /data/metadata/scm/current/VERSION
    command: ["/opt/hadoop/bin/ozone","scm"]
  rm:
    image: apache/hadoop:${HADOOP_VERSION}
    hostname: rm
    volumes:
      - ../..:/opt/ozone
    ports:
      - 8088:8088
    env_file:
      - ./docker-config
    environment:
      HADOOP_CLASSPATH: /opt/ozone/share/ozone/lib/hadoop-ozone-filesystem-lib-current-@project.version@.jar
    command: ["yarn", "resourcemanager"]
  nm:
    image: apache/hadoop:${HADOOP_VERSION}
    hostname: nm
    volumes:
      - ../..:/opt/ozone
    env_file:
      - ./docker-config
    environment:
      HADOOP_CLASSPATH: /opt/ozone/share/ozone/lib/hadoop-ozone-filesystem-lib-current-@project.version@.jar
      WAIT_FOR: rm:8088
    command: ["yarn","nodemanager"]
  jhs:
    image: apache/hadoop:${HADOOP_VERSION}
    hostname: jhs
    volumes:
      - ../..:/opt/ozone
    ports:
      - 8188:8188
    env_file:
      - ./docker-config
    environment:
      HADOOP_CLASSPATH: /opt/ozone/share/ozone/lib/hadoop-ozone-filesystem-lib-current-@project.version@.jar
      WAIT_FOR: rm:8088
    command: ["yarn","timelineserver"]
  spark:
    image: ahadoop/spark-2.4:hadoop-3.2
    hostname: spark
    volumes:
      - ../..:/opt/hadoop
    ports:
      - 4040:4040
    env_file:
      - docker-config
    command: ["watch","-n","100000","ls"]
