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

x-logging: &default-logging
  driver: loki
  options:
    loki-url: 'http://localhost:3100/api/prom/push'
    loki-pipeline-stages: |
      - multiline:
          firstline: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}'
          max_wait_time: 3s
      - regex:
          expression: '^(?P<date>\d{4}-\d{2}-\d{2}) (?P<time>\d{2}:\d{2}:\d{2}.\d{3}) (?P<message>(?s:.*))$$'

version: "3.8"

services:
  loki:
    extends:
      file: ./config/docker/compose/observability.yml
      service: loki

  prometheus:
    extends:
      file: ./config/docker/compose/observability.yml
      service: prometheus
    depends_on:
      - loki

  grafana:
    extends:
      file: ./config/docker/compose/observability.yml
      service: grafana
    depends_on:
      - loki

  tempo:
    extends:
      file: ./config/docker/compose/observability.yml
      service: tempo
    depends_on:
      - loki

  db:
    extends:
      file: ./config/docker/compose/mariadb.yml
      service: mariadb
    depends_on:
      - loki
    logging: *default-logging

  fineract:
    container_name: fineract-development
    extends:
      file: ./config/docker/compose/fineract.yml
      service: fineract
    ports:
      - "8443:8443"
      - "5000:5000"
    depends_on:
      db:
        condition: service_healthy
      loki:
        condition: service_started
    env_file:
      - ./config/docker/env/aws.env
      - ./config/docker/env/fineract.env
      - ./config/docker/env/fineract-common.env
      - ./config/docker/env/fineract-mariadb.env
      - ./config/docker/env/tracing.env
      - ./config/docker/env/oltp.env
      - ./config/docker/env/prometheus.env
      # - ./config/docker/env/cloudwatch.env
      - ./config/docker/env/debug.env
    logging: *default-logging
