---
services:

  localstack:
    container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}"
    image: localstack/localstack
    ports:
      - "127.0.0.1:4510-4559:4510-4559"  # external service port range
      - "127.0.0.1:4566:4566"            # LocalStack Edge Proxy
    environment:
      - DEBUG=${DEBUG-}
      - DATA_DIR=${DATA_DIR-}
      - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR-}
      - HOST_TMP_FOLDER=${TMPDIR:-/tmp/}localstack
      - DOCKER_HOST=unix:///var/run/docker.sock
      - INIT_SCRIPTS_PATH=/localstack_support/init
    volumes:
      - "${TMPDIR:-/tmp}/localstack:/tmp/localstack"
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "./test_stuff/localstack:/localstack_support"
    healthcheck:
      test: ["CMD", "curl", "-sf", "http://localhost:4566"]
      interval: 1s
      timeout: 5s
      retries: 30

  worker:
    platform: linux/amd64
    build:
      context: .
      target: dev
    depends_on:
      localstack:
        condition: service_healthy
    env_file:
      - .env
    environment:
      - Environment=dev
      - SERVICE_NAME=dev-daemon-asset-copy
      - TASK_SQS_QUEUE_NAME=dac-queue
      - SQS_ENDPOINT=http://localstack:4566
      - SFN_ENDPOINT=http://localstack:4566
      - S3_ENDPOINT=http://localstack:4566
      - LOGGER_LEVEL=DEBUG
      - AWS_ACCESS_KEY_ID=hello
      - AWS_SECRET_ACCESS_KEY=world
      - DD_TRACE_ENABLED=false
      - STORAGE_CREDENTIALS={}
      - MAX_NUMBER_OF_SQS_MESSAGES=2

  test:
    platform: linux/amd64
    build:
      context: .
      target: test
    environment:
      - DD_TRACE_ENABLED=false

  lint:
    platform: linux/amd64
    build:
      context: .
      target: lint
    volumes:
      - ./daemon_asset_copy/:/var/app/daemon_asset_copy/
      - ./handler.py:/var/app/handler.py
      - ./tests/:/var/app/tests/
    environment:
      - DD_TRACE_ENABLED=false
