Skip to content
Snippets Groups Projects
docker-compose.yml.twig 2.46 KiB
Newer Older
  • Learn to ignore specific revisions
  • jurgenhaas's avatar
    jurgenhaas committed
    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.debug %}
          PHP_XDEBUG: 1
          PHP_XDEBUG_DEFAULT_ENABLE: 1
    {% endif %}
        volumes:
          - ./:/var/www/html
    
    jurgenhaas's avatar
    jurgenhaas committed
    
      nginx:
    
        image: wodby/drupal-nginx:{{ drupal.version }}-{{ nginx.version }}
    
    jurgenhaas's avatar
    jurgenhaas committed
        restart: unless-stopped
        depends_on:
          - php
        environment:
          NGINX_BACKEND_HOST: php
    
    jurgenhaas's avatar
    jurgenhaas committed
          NGINX_SERVER_ROOT: /var/www/html/{{ webRoot }}
    
    jurgenhaas's avatar
    jurgenhaas committed
        volumes:
          - ./:/var/www/html
        labels:
          - 'traefik.backend=nginx'
          - 'traefik.port=80'
    
          - 'traefik.frontend.rule=Host:{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    
    {% 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=varnish'
          - 'traefik.port=6081'
    
          - 'traefik.frontend.rule=Host:varnish.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% 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=pma'
          - 'traefik.port=80'
    
          - 'traefik.frontend.rule=Host:pma.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    
    {% if solr.enable %}
      solr:
        image: wodby/drupal-solr:8-6.4-2.0.0
        environment:
          SOLR_HEAP: 1024m
        labels:
          - 'traefik.backend=solr'
          - 'traefik.port=8983'
    
          - 'traefik.frontend.rule=Host:solr.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% endif %}
    
      mailhog:
        image: mailhog/mailhog
        labels:
          - 'traefik.backend=mailhog'
          - 'traefik.port=8025'
    
          - 'traefik.frontend.rule=Host:mailhog.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    
    {% if node.enable %}
      node:
        image: node:7-alpine
        working_dir: /app
        labels:
          - 'traefik.backend=node'
          - 'traefik.port=3000'
    
          - 'traefik.frontend.rule=Host:front.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
        expose:
          - "3000"
        volumes:
          - ./path/to/your/single-page-app:/app
        command: sh -c 'npm install && npm run start'
    {% endif %}