Skip to content
Snippets Groups Projects
docker-compose.yml.twig 4.44 KiB
Newer Older
jurgenhaas's avatar
jurgenhaas committed
version: "2"

services:
  mariadb:
    image: 'wodby/mariadb:10.1'
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 }}'
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
{% 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 }}'
{% elseif webserver.type == 'apache' %}
    image: 'wodby/drupal-apache:2.4'
{% endif %}
jurgenhaas's avatar
jurgenhaas committed
    depends_on:
      - php
    environment:
{% if webserver.type == 'nginx' %}
      NGINX_STATIC_CONTENT_OPEN_FILE_CACHE: "off"
      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'
jurgenhaas's avatar
jurgenhaas committed
      - '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'
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:{{ redis.version }}'

  adminer:
    image: 'wodby/adminer:{{ adminer.version }}'
    environment:
      ADMINER_SALT: adminer-salt
    labels:
      - 'traefik.backend={{ projectname }}_adminer_1'
      - 'traefik.port=9000'
      - 'traefik.frontend.rule=Host:adminer.{{ projectname }}.docker.localhost'
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 %}
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'
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'
    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'
{% 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 %}