# 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:${OZONE_RUNNER_VERSION}
    volumes:
      - ../..:/opt/hadoop
    ports:
      - 9864
    command: ["/opt/hadoop/bin/ozone","datanode"]
    env_file:
      - docker-config
  om:
    image: apache/ozone-runner:${OZONE_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:${OZONE_RUNNER_VERSION}
    hostname: s3g
    volumes:
      - ../..:/opt/hadoop
    ports:
      - 9878:9878
    env_file:
      - ./docker-config
    command: ["/opt/hadoop/bin/ozone","s3g"]
  recon:
    image: apache/ozone-runner:${OZONE_RUNNER_VERSION}
    hostname: recon
    volumes:
      - ../..:/opt/hadoop
    ports:
      - 9888:9888
    env_file:
      - ./docker-config
    environment:
      WAITFOR: om:9874
    command: ["/opt/hadoop/bin/ozone","recon"]
  scm:
    image: apache/ozone-runner:${OZONE_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"]
