# Compose file to spin up a local Snipe-IT for development.

version: '3'

services:
  snipeit:
    build:
      context: .
      dockerfile: Dockerfile.alpine
    container_name: snipeit
    ports:
      - "8000:80"
    depends_on:
      redis:
        # The default needs to be stated.
        condition: service_started
      mariadb:
        condition: service_healthy
        restart: true
    env_file:
      - .env.dev.docker

  mariadb:
    image: mariadb:11.5.2
    volumes:
      - db:/var/lib/mysql
    env_file:
      - .env.dev.docker
    ports:
      - "3306:3306"
    healthcheck:
      # https://mariadb.com/kb/en/using-healthcheck-sh/#compose-file-example
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 5s
      timeout: 2s
      retries: 5

  redis:
    image: redis:7.4.0

  mailhog:
    image: mailhog/mailhog:v1.0.1
    ports:
      # - 1025:1025
      - "8025:8025"

volumes:
  db: {}