services:
  tadas:
    environment:
      MAINDB_HOST_PORT: maindb:5432
      MAIN_DB_USER: tadas_etl
      MAIN_DB_PASSWORD: devpassword
      SNOWFLAKE_PRIVATE_KEY_PATH: /run/secrets/snowflake/rsa_key.p8
    env_file:
      - docker.env
    depends_on:
      - maindb
    platform: linux/amd64
    volumes:
      - ${HOME}/.ssh/snowflake/rsa_key.p8:/run/secrets/snowflake/rsa_key.p8:ro
      - tadas_files:/app/backend/files
    build:
        context: .
        dockerfile: Dockerfile
    command: [ "--report-date=${REPORT_DATE}", "--model=${MODEL_VERSION}" ]

  tadas-unit-tests:
    platform: linux/amd64
    profiles: ['unit-tests']
    build:
      context: .
      dockerfile: Dockerfile
      target: development
    volumes:
      - ./build:/app/build
    command:
      - lint
      - test

  maindb:
    image: postgres:15
    environment:
      POSTGRES_USER: tadas_etl
      POSTGRES_PASSWORD: devpassword
      POSTGRES_DB: maindb
    platform: linux/amd64
    ports:
      - '5434:5432'
    volumes:
      - ./sql:/docker-entrypoint-initdb.d
      - pgdata:/var/lib/postgresql/data

  volume-init:
    image: alpine
    # UID 1010 from https://github.com/theorchard/docker-parent-images/blob/master/python312/Dockerfile
    command: ["sh", "-c", "chown -R 1010 /data"]
    volumes:
      - tadas_files:/data
    restart: "no"

volumes:
  pgdata:
  tadas_files: