---
version: "3.7"
services:

  # does not follow error path on 200 w/ error in body
  step-functions:
    image: amazon/aws-stepfunctions-local:1.7.3
    ports:
      - "8083:8083"
    env_file: aws-stepfunctions-local-credentials.txt
    depends_on:
      # - nginx-proxy
      - flask-proxy

  # same issue as aws-stepfunctions-local :-( it's using same JAR
  # https://github.com/localstack/localstack/blob/master/localstack/services/install.py#L37
  # https://github.com/localstack/localstack/blob/80c30e51a1b3996da37d04ac79982f47bdfc313e/localstack/constants.py#L93
  # localstackstepfunctions:
  #   image: localstack/localstack:0.12.8
  #   environment:
  #     - SERVICES=s3,stepfunctions
  #     - STEPFUNCTIONS_LAMBDA_ENDPOINT=http://flask-proxy:5000
  #     - DEBUG=1
  #   ports:
  #     - "4566:4566"
  #   depends_on:
  #     - nginx-proxy
  #     - flask-proxy

  localstacks3:
    image: localstack/localstack:0.12.8
    environment:
      - SERVICES=s3
      - DEBUG=1
    ports:
      - "4567:4566"

  kickoff:
    build:
      context: lambda/kickoff/
    ports:
      - "9000:8080"
    volumes:
      - ./lambda/kickoff/src:/var/task/src
    depends_on:
      - localstacks3

  download_image:
    build:
      context: lambda/download_image/
    ports:
      - "9001:8080"
    volumes:
      - ./lambda/download_image/src:/var/task/src

  image_to_ascii:
    build:
      context: lambda/image_to_ascii/
    ports:
      - "9002:8080"
    volumes:
      - ./lambda/image_to_ascii/src:/var/task/src

  flask-proxy:
    build:
      context: flask_proxy/
    ports:
      - "5000:5000"
    depends_on:
      - kickoff
      - download_image
      - image_to_ascii

  # nginx-proxy:
  #   image: nginx:1.19.7-alpine
  #   ports:
  #     - "8080:80"
  #   volumes:
  #     - ./nginx_proxy/nginx.conf:/etc/nginx/nginx.conf
  #   depends_on:
  #     - kickoff
  #     - download_image
  #     - image_to_ascii
