services:
  api:
    image: <%= projectName %>-app
    volumes:
      - .:/app
      - /app/node_modules
    env_file:
      - .env
    ports:
      - ${SERVER_PORT}:3000
    command: npm run start:dev
    depends_on:
      - migration

  migration:
    build:
      dockerfile: Dockerfile
      context: .
      target: development
    image: <%= projectName %>-app
    command: npm run mikroorm:migration:migrate
    volumes:
      - .:/app
      - /app/node_modules
    env_file:
      - .env
    links:
      - mariadb
    depends_on:
      - mariadb

  mariadb:
    image: mariadb:10.7
    restart: always
    volumes:
      - mariadb:/var/lib/mysql
    ports:
      - 3307:3306
    environment:
      MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD:-secret}
      MYSQL_DATABASE: ${DATABASE_NAME:-test}
      MYSQL_USER: ${DATABASE_USERNAME:-test}
      MYSQL_PASSWORD: ${DATABASE_PASSWORD:-secret}

volumes:
  mariadb:
