# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.

x-proxy: &default-proxy
  networks:
    - default
    - web
  labels:
    - "traefik.docker.network=traefik_proxy"
    - "traefik.http.routers.${COMPOSE_PROJECT_NAME}.rule=Host(
        `${COMPOSE_PROJECT_NAME}.localhost`,
              )"

x-app: &default-app
  volumes:
    - "${DOCKER_WEB_VOLUME:-./web:/var/www/html/web}"
  env_file:
    - .env
  restart: "${DOCKER_RESTART_POLICY:-unless-stopped}"
  networks:
    - default
  deploy:
    resources:
      limits:
        cpus: "${DOCKER_MYSQL_CPUS:-0}"
        memory: "${DOCKER_MYSQL_MEMORY:-0}"
  labels:
    - "traefik.enabled=false"
  tty: true

services:

  php:
    <<: [*default-proxy, *default-app]
    build:
      context: .
      target: build
      args:
        - "DOCKER_UID=${DOCKER_UID:-1000}"
    volumes:
      - .:/var/www/html
    depends_on:
      - database
    profiles: [php]

  database:
    image: mariadb:10
    deploy:
      resources:
        limits:
          cpus: "${DOCKER_MYSQL_CPUS:-0}"
          memory: "${DOCKER_MYSQL_MEMORY:-0}"
    volumes:
      - db-data:/var/lib/mysql
      
    env_file:
      - .env
    labels:
      - "traefik.enabled=false"
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: true
    profiles: [database]

volumes:
  db-data: {}

networks:
  web:
    external: true
    name: traefik_proxy