version: '2.4'

volumes:
  assets:
  mysql_data:
  node_modules:

services:
  nginx:
    build:
      dockerfile: tools/docker/Dockerfile
      context: .
      target: nginx
    volumes:
      - assets:/app/web/themes/custom/opdavies/build
      - node_modules:/app/web/themes/custom/opdavies/node_modules
      - ./:/app
    depends_on:
      php:
        condition: service_started
    ports:
      - 80:80

  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:14-alpine
    working_dir: /node
    entrypoint: sh
    volumes:
      - assets:/node/build
      - node_modules:/node/node_modules
      - ./web/themes/custom/opdavies/assets:/node/assets
      - ./web/themes/custom/opdavies/package-lock.json:/node/package-lock.json
      - ./web/themes/custom/opdavies/package.json:/node/package.json
      - ./web/themes/custom/opdavies/postcss.config.js:/node/postcss.config.js
      - ./web/themes/custom/opdavies/tailwindcss:/node/tailwindcss
      - ./web/themes/custom/opdavies/tailwind-colours.js:/node/tailwind-colours.js
      - ./web/themes/custom/opdavies/tailwind-plugin-focus-visible.js:/node/tailwind-plugin-focus-visible.js
      - ./web/themes/custom/opdavies/tailwind-safelist-classes.txt:/node/tailwind-safelist-classes.txt
      - ./web/themes/custom/opdavies/tailwind.config.js:/node/tailwind.config.js
      - ./web/themes/custom/opdavies/templates:/node/templates
      - ./web/themes/custom/opdavies/webpack.config.js:/node/webpack.config.js