Skip to content
Snippets Groups Projects
docker-compose.yml.twig 3.88 KiB
Newer Older
  • Learn to ignore specific revisions
  • jurgenhaas's avatar
    jurgenhaas committed
    version: "2"
    
    services:
      mariadb:
    
        image: 'wodby/mariadb:10.1-2.3.3'
    
    jurgenhaas's avatar
    jurgenhaas committed
        environment:
          MYSQL_ROOT_PASSWORD: password
          MYSQL_DATABASE: drupal
          MYSQL_USER: drupal
          MYSQL_PASSWORD: drupal
    
      php:
    
        image: 'wodby/drupal-php:{{ php.version }}-2.4.3'
    
    jurgenhaas's avatar
    jurgenhaas committed
        environment:
          PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% if php.xdebug %}
    
    jurgenhaas's avatar
    jurgenhaas committed
          PHP_XDEBUG: 1
          PHP_XDEBUG_DEFAULT_ENABLE: 1
    
          PHP_XDEBUG_REMOTE_AUTOSTART: 1
          PHP_XDEBUG_REMOTE_HOST: {{ docker0.ip }}
          PHP_IDE_CONFIG: serverName=Docker
          PHP_XDEBUG_REMOTE_CONNECT_BACK: 1
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% endif %}
    
    jurgenhaas's avatar
    jurgenhaas committed
        volumes:
          - ./:/var/www/html
    
    jurgenhaas's avatar
    jurgenhaas committed
    
    
      {{ webserver.type }}:
    {% if webserver.type == 'nginx' %}
        image: 'wodby/drupal-nginx:{{ drupal.version }}-{{ webserver.version }}-2.4.2'
    {% elseif webserver.type == 'apache' %}
        image: 'wodby/drupal-apache:2.4-1.0.2'
    {% endif %}
    
    jurgenhaas's avatar
    jurgenhaas committed
        depends_on:
          - php
        environment:
    
          {{ webserver.type|upper }}_BACKEND_HOST: php
          {{ webserver.type|upper }}_SERVER_ROOT: /var/www/html/{{ webRoot }}
    
    jurgenhaas's avatar
    jurgenhaas committed
        volumes:
          - ./:/var/www/html
        labels:
    
          - 'traefik.backend={{ projectname }}_{{ webserver.type }}_1'
    
    jurgenhaas's avatar
    jurgenhaas committed
          - '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.1.2'
    
    jurgenhaas's avatar
    jurgenhaas committed
        depends_on:
    
          - {{ webserver.type }}
    
    jurgenhaas's avatar
    jurgenhaas committed
        environment:
          VARNISH_SECRET: secret
    
          VARNISH_BACKEND_HOST: {{ webserver.type }}
    
    jurgenhaas's avatar
    jurgenhaas committed
          VARNISH_BACKEND_PORT: 80
        labels:
    
          - 'traefik.backend={{ projectname }}_varnish_1'
    
    jurgenhaas's avatar
    jurgenhaas committed
          - 'traefik.port=6081'
    
          - 'traefik.frontend.rule=Host:varnish.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% endif %}
    
      redis:
    
        image: 'wodby/redis:3.2-2.1.2'
    
    jurgenhaas's avatar
    jurgenhaas committed
    
      pma:
    
        image: 'phpmyadmin/phpmyadmin'
    
    jurgenhaas's avatar
    jurgenhaas committed
        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'
    
    jurgenhaas's avatar
    jurgenhaas committed
          - 'traefik.port=80'
    
          - 'traefik.frontend.rule=Host:pma.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    
    {% if solr.enable %}
      solr:
    
        image: 'wodby/drupal-solr:{{ drupal.version }}-6.6-2.2.0'
    
    jurgenhaas's avatar
    jurgenhaas committed
        environment:
          SOLR_HEAP: 1024m
        labels:
    
          - 'traefik.backend={{ projectname }}_solr_1'
    
    jurgenhaas's avatar
    jurgenhaas committed
          - 'traefik.port=8983'
    
          - 'traefik.frontend.rule=Host:solr.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% endif %}
    
      mailhog:
    
        image: 'mailhog/mailhog'
    
    jurgenhaas's avatar
    jurgenhaas committed
        labels:
    
          - 'traefik.backend={{ projectname }}_mailhog_1'
    
    jurgenhaas's avatar
    jurgenhaas committed
          - 'traefik.port=8025'
    
          - 'traefik.frontend.rule=Host:mailhog.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    
    {% if node.enable %}
    
      nodejs:
        image: 'wodby/drupal-node:1.0-1.0.0'
        environment:
           NODE_SERVICE_KEY: '{{ node.key }}'
        labels:
          - 'traefik.backend=nodejs'
          - 'traefik.port=8080'
          - 'traefik.frontend.rule=Host:nodejs.{{ projectname }}.docker.localhost'
        volumes:
          - ./{{ node.path }}:/app
        command: sh -c 'npm install && npm run start'
    
    
    jurgenhaas's avatar
    jurgenhaas committed
      node:
    
        image: 'node:alpine'
    
    jurgenhaas's avatar
    jurgenhaas committed
        working_dir: /app
        labels:
    
          - 'traefik.backend={{ projectname }}_node_1'
    
    jurgenhaas's avatar
    jurgenhaas committed
          - 'traefik.port=3000'
    
          - 'traefik.frontend.rule=Host:front.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
        expose:
          - "3000"
        volumes:
    
          - ./{{ node.path }}:/app
    
    jurgenhaas's avatar
    jurgenhaas committed
        command: sh -c 'npm install && npm run start'
    {% endif %}
    
    
    {% if memcached.enable %}
      memcached:
        image: 'wodby/memcached:1.4-2.0.0'
    {% endif %}
    
    {% if rsyslog.enable %}
      rsyslog:
        image: 'wodby/rsyslog'
    {% endif %}
    
    {% if athenapdf.enable %}
      athenapdf:
        image: 'arachnysdocker/athenapdf-service'
        environment:
          WEAVER_AUTH_KEY: '{{ athenapdf.key }}'
          WEAVER_ATHENA_CMD: "athenapdf -S"
          WEAVER_MAX_WORKERS: 10
          WEAVER_MAX_CONVERSION_QUEUE: 50
          WEAVER_WORKER_TIMEOUT: 90
          WEAVER_CONVERSION_FALLBACK: false
    {% endif %}