version: "2"

services:
  mariadb:
    image: wodby/mariadb:10.1-2.0.0
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: drupal
      MYSQL_USER: drupal
      MYSQL_PASSWORD: drupal

  php:
    image: wodby/drupal-php:{{ php.version }}-2.0.0
    environment:
      PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
{% if php.xdebug %}
      PHP_XDEBUG: 1
      PHP_XDEBUG_DEFAULT_ENABLE: 1
{% endif %}
    volumes:
      - ./:/var/www/html
      - ./drush:/etc/drush

  nginx:
    image: wodby/drupal-nginx:{{ drupal.version }}-{{ nginx.version }}
    restart: unless-stopped
    depends_on:
      - php
    environment:
      NGINX_BACKEND_HOST: php
      NGINX_SERVER_ROOT: /var/www/html/{{ webRoot }}
    volumes:
      - ./:/var/www/html
    labels:
      - 'traefik.backend={{ projectname }}_nginx_1'
      - 'traefik.port=80'
      - 'traefik.frontend.rule=Host:{{ projectname }}.docker.localhost'

{% if varnish.enable %}
  varnish:
    image: wodby/drupal-varnish:4.1-2.0.0
    depends_on:
      - nginx
    environment:
      VARNISH_SECRET: secret
      VARNISH_BACKEND_HOST: nginx
      VARNISH_BACKEND_PORT: 80
    labels:
      - 'traefik.backend={{ projectname }}_varnish_1'
      - 'traefik.port=6081'
      - 'traefik.frontend.rule=Host:varnish.{{ projectname }}.docker.localhost'
{% endif %}

  redis:
    image: wodby/redis:3.2-2.0.1

  pma:
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_HOST: mariadb
      PMA_USER: drupal
      PMA_PASSWORD: drupal
      PHP_UPLOAD_MAX_FILESIZE: 1G
      PHP_MAX_INPUT_VARS: 1G
    labels:
      - 'traefik.backend={{ projectname }}_pma_1'
      - 'traefik.port=80'
      - 'traefik.frontend.rule=Host:pma.{{ projectname }}.docker.localhost'

{% if solr.enable %}
  solr:
    image: wodby/drupal-solr:8-6.4-2.0.0
    environment:
      SOLR_HEAP: 1024m
    labels:
      - 'traefik.backend={{ projectname }}_solr_1'
      - 'traefik.port=8983'
      - 'traefik.frontend.rule=Host:solr.{{ projectname }}.docker.localhost'
{% endif %}

  mailhog:
    image: mailhog/mailhog
    labels:
      - 'traefik.backend={{ projectname }}_mailhog_1'
      - 'traefik.port=8025'
      - 'traefik.frontend.rule=Host:mailhog.{{ projectname }}.docker.localhost'

{% if node.enable %}
  node:
    image: node:7-alpine
    working_dir: /app
    labels:
      - 'traefik.backend={{ projectname }}_node_1'
      - 'traefik.port=3000'
      - 'traefik.frontend.rule=Host:front.{{ projectname }}.docker.localhost'
    expose:
      - "3000"
    volumes:
      - ./path/to/your/single-page-app:/app
    command: sh -c 'npm install && npm run start'
{% endif %}