services:
  unit-lint:
    build:
      context: .
      target: unit-lint
    platform: linux/amd64
    depends_on:
      - localstack
      - mysql
    volumes:
      - ./build:/var/app/build
      - ./tests/fixture_data:/var/app/tests/fixture_data
    environment:
      - AWS_ACCESS_KEY_ID=dummy
      - AWS_SECRET_ACCESS_KEY=dummy
      - MYSQL_DATABASE=accountingflat
      - MYSQL_USER=root
      - MYSQL_PASSWORD=root
      - MYSQL_HOST=mysql
      - PERIOD_ID=100
      - S3_BUCKET=test-bucket
  integration-test:
    build:
      context: .
      target: integration
    platform: linux/amd64
    environment:
      - Environment=dev
    depends_on:
      - localstack
      - mysql
  localstack:
    image: localstack/localstack:3.8
    platform: linux/amd64
    environment:
      - SERVICES=s3
      - DEBUG=1
      - DOCKER_HOST=unix:///var/run/docker.sock
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    healthcheck:
      test: ["CMD", "curl", "-sf", "http://localhost:4566"]
      interval: 1s
      timeout: 60s
    deploy:
      resources:
        limits:
          cpus: '1'
  mysql:
    image: mysql:8.0.36
    platform: linux/amd64
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=accountingflat
      - MYSQL_USER=accounting_run_utils
      - MYSQL_PASSWORD=1234
    ports:
      - "6051:3306"
    tmpfs:
      - "/var/lib/mysql"
    volumes:
      - ./tests/fixture_data:/var/lib/mysql-files

