Skip to content
Snippets Groups Projects
docker-compose.yml.twig 5.8 KiB
Newer Older
  • Learn to ignore specific revisions
  • jurgenhaas's avatar
    jurgenhaas committed
    
    services:
      mariadb:
    
        image: 'wodby/mariadb:10.2'
    
    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 }}-dev'
    
    jurgenhaas's avatar
    jurgenhaas committed
        environment:
          PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
    
          DB_HOST: mariadb
          DB_USER: drupal
          DB_PASSWORD: drupal
          DB_NAME: drupal
          DB_DRIVER: mysql
    
    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
    {% if webgrind.enable %}
          PHP_XDEBUG_PROFILER_ENABLE: 1
          PHP_XDEBUG_PROFILER_ENABLE_TRIGGER: 1
          PHP_XDEBUG_PROFILER_ENABLE_TRIGGER_VALUE: 1
          PHP_XDEBUG_PROFILER_OUTPUT_DIR: /mnt/files/xdebug/profiler
          PHP_XDEBUG_TRACE_OUTPUT_DIR: /mnt/files/xdebug/traces
    {% endif %}
    {% endif %}
    {% if blackfire.enable %}
          PHP_BLACKFIRE: 1
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% endif %}
    
    {% if php.ssh %}
    
    {% endif %}
    
    jurgenhaas's avatar
    jurgenhaas committed
        volumes:
          - ./:/var/www/html
    
    {% if php.ssh %}
    
    {% endif %}
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% if webgrind.enable %}
          - files:/mnt/files
    {% endif %}
    
    jurgenhaas's avatar
    jurgenhaas committed
    
    
      {{ webserver.type }}:
    {% if webserver.type == 'nginx' %}
    
        image: 'wodby/drupal-nginx:{{ drupal.version }}-{{ webserver.version|default("1.13") }}'
    
    {% elseif webserver.type == 'apache' %}
    
    jurgenhaas's avatar
    jurgenhaas committed
        image: 'wodby/php-apache:2.4'
    
    {% endif %}
    
    jurgenhaas's avatar
    jurgenhaas committed
        depends_on:
          - php
        environment:
    
    {% if webserver.type == 'nginx' %}
    
    {% if live is defined and live.uri is defined %}
          NGINX_DRUPAL_FILE_PROXY_URL: '{{ live.uri }}'
    {% endif %}
    
          NGINX_ERROR_LOG_LEVEL: debug
    {% elseif webserver.type == 'apache' %}
          APACHE_LOG_LEVEL: debug
    {% endif %}
    
          {{ 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'
          traefik.port: '80'
          traefik.frontend.rule: 'Host:{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% if varnish.enable %}
    
    jurgenhaas's avatar
    jurgenhaas committed
      varnish:
    
        image: 'wodby/drupal-varnish:4.1'
    
    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'
          traefik.port: '6081'
          traefik.frontend.rule: 'Host:varnish.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% endif %}
    
      redis:
    
        image: 'wodby/redis:{{ redis.version }}'
    
    
    {% if dbbrowser.type == 'adminer' %}
    
        image: 'wodby/adminer:{{ dbbrowser.version|default("4.3") }}'
    
        environment:
          ADMINER_SALT: adminer-salt
        labels:
    
          traefik.backend: '{{ projectname }}_adminer_1'
          traefik.port: '9000'
          traefik.frontend.rule: 'Host:adminer.{{ projectname }}.docker.localhost'
    
    {% elseif dbbrowser.type == 'pma' %}
    
    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'
          traefik.port: '80'
          traefik.frontend.rule: 'Host:pma.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% if solr.enable %}
    
    jurgenhaas's avatar
    jurgenhaas committed
      solr:
    
        image: 'wodby/drupal-solr:{{ drupal.version }}-{{ solr.version }}'
    
    jurgenhaas's avatar
    jurgenhaas committed
        environment:
          SOLR_HEAP: 1024m
        labels:
    
          traefik.backend: '{{ projectname }}_solr_1'
          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'
          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'
    
        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'
          traefik.port: '3000'
          traefik.frontend.rule: 'Host:front.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
        expose:
    
    jurgenhaas's avatar
    jurgenhaas committed
        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'
    
    {% endif %}
    {% if rsyslog.enable %}
    
      rsyslog:
        image: 'wodby/rsyslog'
    {% endif %}
    {% if athenapdf.enable %}
    
      athenapdf:
        image: 'arachnysdocker/athenapdf-service'
        environment:
          WEAVER_AUTH_KEY: '{{ athenapdf.key }}'
    
          WEAVER_MAX_WORKERS: 10
          WEAVER_MAX_CONVERSION_QUEUE: 50
          WEAVER_WORKER_TIMEOUT: 90
          WEAVER_CONVERSION_FALLBACK: false
    {% endif %}
    
    jurgenhaas's avatar
    jurgenhaas committed
    {% if blackfire.enable %}
    
      blackfire:
        image: 'blackfire/blackfire'
        environment:
          BLACKFIRE_SERVER_ID: '{{ blackfire.id }}'
          BLACKFIRE_SERVER_TOKEN: '{{ blackfire.token }}'
    {% endif %}
    {% if webgrind.enable %}
    
      webgrind:
        # add XDEBUG_PROFILE=1 to your request to profile that
        image: 'wodby/webgrind:1.5'
        environment:
          WEBGRIND_PROFILER_DIR: '/mnt/files/xdebug/profiler'
        labels:
    
          traefik.backend: '{{ projectname }}_webgrind_1'
          traefik.port: '8080'
          traefik.frontend.rule: 'Host:webgrind.{{ projectname }}.docker.localhost'
    
    jurgenhaas's avatar
    jurgenhaas committed
        volumes:
          - files:/mnt/files
    {% endif %}
    
    
    networks:
      default:
        external:
          name: traefik_{{ projectname }}