# {{ managedText|raw }} 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`, {% for host in web.extra_hosts | default([]) -%} {{ '`' ~ host ~ '`,' }} {%- endfor %} )" x-app: &default-app volumes: - "${DOCKER_WEB_VOLUME:-./{{ drupal.docroot }}:{{ project_root }}/{{ drupal.docroot }}}" 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: {% if "web" in dockerCompose.services %} web: <<: [*default-proxy, *default-app] build: context: . target: web depends_on: - php profiles: [web] {% endif %} {% set anchors = [ "apache" in php.version ? "*default-proxy" : null, "*default-app", ] -%} php: <<: [{{ anchors | filter(item => item is not null) | join(", ") }}] build: context: . target: build args: - "DOCKER_UID=${DOCKER_UID:-1000}" volumes: - .:{{ project_root }} {% if "database" in dockerCompose.services -%} depends_on: - database {% endif -%} profiles: [php] database: image: {{ database.type }}:{{ database.version }} deploy: resources: limits: cpus: "${DOCKER_MYSQL_CPUS:-0}" memory: "${DOCKER_MYSQL_MEMORY:-0}" volumes: - db-data:/var/lib/mysql {{ database.extra_databases is not empty ? '- ./tools/docker/images/database/root/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d' : '' }} 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