-
jurgenhaas authoredjurgenhaas authored
docker-compose.yml.twig 5.54 KiB
version: '2'
services:
mariadb:
image: 'wodby/mariadb:10.1'
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: drupal
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal
php:
image: 'wodby/drupal-php:{{ php.version }}'
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
{% if php.xdebug %}
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
{% 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
{% endif %}
SSH_AUTH_SOCK: /ssh-agent
volumes:
- ./:/var/www/html
- ./drush:/etc/drush
- $SSH_AUTH_SOCK:/ssh-agent
{% if webgrind.enable %}
- files:/mnt/files
{% endif %}
{{ webserver.type }}:
{% if webserver.type == 'nginx' %}
image: 'wodby/drupal-nginx:{{ drupal.version }}-{{ webserver.version }}'
{% elseif webserver.type == 'apache' %}
image: 'wodby/php-apache:2.4'
{% endif %}
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 }}
volumes:
- ./:/var/www/html
labels:
traefik.backend: '{{ projectname }}_{{ webserver.type }}_1'
traefik.port: '80'
traefik.frontend.rule: 'Host:{{ projectname }}.docker.localhost'
{% if varnish.enable %}
varnish:
image: 'wodby/drupal-varnish:4.1'
depends_on:
- {{ webserver.type }}
environment:
VARNISH_SECRET: secret
VARNISH_BACKEND_HOST: {{ webserver.type }}
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:{{ redis.version }}'
{% if dbbrowser.type == 'adminer' %}
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' %}
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'
{% endif %}
{% if solr.enable %}
solr:
image: 'wodby/drupal-solr:{{ drupal.version }}-{{ solr.version }}'
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 %}
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'
node:
image: 'node:alpine'
working_dir: /app
labels:
traefik.backend: '{{ projectname }}_node_1'
traefik.port: '3000'
traefik.frontend.rule: 'Host:front.{{ projectname }}.docker.localhost'
expose:
- '3000'
volumes:
- ./{{ node.path }}:/app
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 %}
{% 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'
volumes:
- files:/mnt/files
{% endif %}