version: '3.4'

services:

  db:
    image: mysql:5.7.41-debian
    container_name: db
    command: --character-set-server=utf8 --innodb-flush-method=fsync
    restart: unless-stopped
    env_file:
      - .env
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: true
    volumes:
      - db:/var/lib/mysql
#      - ./dump:/docker-entrypoint-initdb.d
      - ./schemas:/docker-entrypoint-initdb.d
    ports:
      - "3306:3306"
    healthcheck:
      test: [ "CMD-SHELL", "mysqladmin ping -u${MYSQL_USER} -p${MYSQL_PASSWORD} -h$${HOSTNAME} --silent" ]
      start_period: 30s
      interval: 5s
      timeout: 5s
      retries: 3
    networks:
      app:

  app:
    profiles:
      - api
    build:
      dockerfile: Dockerfile.serverless
    container_name: app
    restart: unless-stopped
    env_file:
      - .env
    volumes:
      - ./src:/var/task/src
    ports:
      - "8000:8000"
      - "8001:8001"
    depends_on:
      db:
        condition: service_healthy
    networks:
      app:

volumes:
  db:

networks:
  app:
