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

services:
  server-prototype:
    build:
      context: ../../..
      dockerfile: docker/src/main/Dockerfile-single
    ports:
      - 6667:6667
    networks:
      iotdb:
    healthcheck:
      test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/6667" ]
      interval: 5s
      timeout: 60s
      retries: 120

  initializer:
    build:
      context: ../../..
      dockerfile: docker/src/main/Dockerfile-single
    networks:
      iotdb:
    entrypoint:
      - bash
      - -c
      - |
        cat /res/init.sql | grep -v '^--' | xargs -I {} /iotdb/sbin/start-cli.sh -h server -e {}
        echo "Ready to Run IoTDB E2E Tests"

networks:
  iotdb:
