version: '2.4'

volumes:
  mysql_data:

services:
  proxy:
    image: jwilder/nginx-proxy
    ports:
      - 80:80
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

  nginx:
    image: nginx:1-alpine
    working_dir: /app
    volumes:
      - ./:/app
      - ./tools/docker/images/nginx/configs/vhost.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      node:
        condition: service_started
      php:
        condition: service_started
    environment:
      VIRTUAL_HOST: oliverdavies.localhost

  php:
    build:
      context: .
      dockerfile: tools/docker/Dockerfile
      target: dev
    volumes:
      - ./:/app
    env_file:
      - .docker.env
    depends_on:
      mysql:
        condition: service_healthy

  mysql:
    image: mariadb:10
    volumes:
      - mysql_data:/var/lib/mysql
      - ./tools/docker/images/mysql/databases.sql:/docker-entrypoint-initdb.d/databases.sql
    env_file:
      - .docker.env
    healthcheck:
      test: ["CMD-SHELL", "bash", "-c", "echo > /dev/tcp/localhost/3306"]
      interval: 1s

  node:
    image: node:12
    working_dir: /node
    volumes:
      - ./web:/node