# 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.

services:
  spark-iceberg:
    image: pyiceberg-spark:latest
    build: spark/
    container_name: pyiceberg-spark
    networks:
      iceberg_net:
    depends_on:
      - rest
      - hive
      - minio
    ports:
      - 15002:15002 # Spark Connect
      - 4040:4040 # Spark UI
    environment:
      - AWS_ACCESS_KEY_ID=admin
      - AWS_SECRET_ACCESS_KEY=password
      - AWS_REGION=us-east-1
    links:
      - rest:rest
      - hive:hive
      - minio:minio
    healthcheck:
      test: ["CMD", "sh", "-c", "netstat -an | grep 15002 | grep LISTEN"]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 90s
  rest:
    image: apache/iceberg-rest-fixture
    container_name: pyiceberg-rest
    networks:
      iceberg_net:
    ports:
      - 8181:8181
    environment:
      - AWS_ACCESS_KEY_ID=admin
      - AWS_SECRET_ACCESS_KEY=password
      - AWS_REGION=us-east-1
      - CATALOG_WAREHOUSE=s3://warehouse/
      - CATALOG_IO__IMPL=org.apache.iceberg.aws.s3.S3FileIO
      - CATALOG_S3_ENDPOINT=http://minio:9000
      - CATALOG_JDBC_STRICT__MODE=true
  minio:
    image: minio/minio
    container_name: pyiceberg-minio
    networks:
      iceberg_net:
        aliases:
          - warehouse.minio
    ports:
      - 9001:9001
      - 9000:9000
    environment:
      - MINIO_ROOT_USER=admin
      - MINIO_ROOT_PASSWORD=password
      - MINIO_DOMAIN=minio
    command: ["server", "/data", "--console-address", ":9001"]
  mc:
    image: minio/mc
    container_name: pyiceberg-mc
    networks:
      iceberg_net:
    depends_on:
      - minio
    environment:
      - AWS_ACCESS_KEY_ID=admin
      - AWS_SECRET_ACCESS_KEY=password
      - AWS_REGION=us-east-1
    entrypoint: >
      /bin/sh -c "
      until (/usr/bin/mc alias set minio http://minio:9000 admin password) do echo '...waiting...' && sleep 1; done;
      /usr/bin/mc mb minio/warehouse;
      /usr/bin/mc policy set public minio/warehouse;
      tail -f /dev/null
      "
  hive:
    image: pyiceberg-hive:latest
    build: hive/
    container_name: pyiceberg-hive
    hostname: hive
    networks:
      iceberg_net:
    ports:
      - 9083:9083
    environment:
      SERVICE_NAME: "metastore"
      SERVICE_OPTS: "-Dmetastore.warehouse.dir=s3a://warehouse/hive/"

networks:
  iceberg_net:
