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

# You can replace and test a more recent version of docker compose
version: "3.7"
services:
  kafka:
    image: "bitnami/kafka:3.5.1-debian-11-r7"
    ports:
      - "9092:9092"
    env_file:
      - ./config/docker/env/kafka-server.env

  db:
    extends:
      file: ./config/docker/compose/postgresql.yml
      service: postgresql

  fineract-manager:
    extends:
      file: ./config/docker/compose/fineract.yml
      service: fineract
    ports:
      - "8443:8443"
    depends_on:
      db:
        condition: service_healthy
      kafka:
        condition: service_started
    env_file:
      - ./config/docker/env/fineract-manager.env
      - ./config/docker/env/fineract-common.env
      - ./config/docker/env/fineract-postgresql.env
      - ./config/docker/env/kafka-client.env

  fineract-worker:
    extends:
      file: ./config/docker/compose/fineract.yml
      service: fineract
    deploy:
      mode: replicated
      replicas: 2
    ports:
      - "8444-8445:8443"
    depends_on:
      fineract-manager:
        condition: service_healthy
    env_file:
      - ./config/docker/env/fineract-worker.env
      - ./config/docker/env/fineract-common.env
      - ./config/docker/env/fineract-postgresql.env
      - ./config/docker/env/kafka-client.env
