Newer
Older

jurgenhaas
committed
version: '3.3'
networks:
traefik-public:
external: true

jurgenhaas
committed
image: {% if dbserver.type == 'mariadb' %}'wodby/mariadb:{{ dbserver.version }}'{% elseif dbserver.type == 'mysql' %}'mysql/mysql-server:{{ dbserver.version }}'{% else %}''{% endif %}
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: drupal
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal
MYSQL_LOG_CONSOLE: 0
mariadbtest:

jurgenhaas
committed
image: {% if dbserver.type == 'mariadb' %}'wodby/mariadb:{{ dbserver.version }}'{% elseif dbserver.type == 'mysql' %}'mysql/mysql-server:{{ dbserver.version }}'{% else %}''{% endif %}
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: drupal
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal

jurgenhaas
committed
MYSQL_LOG_CONSOLE: 0
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
PHP_XDEBUG_MAX_NESTING_LEVEL: 512
PHP_XDEBUG_REMOTE_HOST: {{ docker0.ip }}
PHP_XDEBUG_START_WITH_REQUEST: 1

jurgenhaas
committed
DRUSH_ALLOW_XDEBUG: 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

jurgenhaas
committed
SSH_AUTH_SOCK: /ssh-agent
- {{ projectroot }}/drush:/etc/drush
- {{ php.ssh_auth_sock }}:/ssh-agent
{% endif %}
{% if wkhtmltox.enable %}
- './.docker-init/wkhtmltox.sh:/docker-entrypoint-init.d/50-wkhtmltox.sh'
- '{{ projectname }}.{{ traefik.domain }}:{{ docker0.ip }}'
image: {% if webserver.type == 'nginx' %}'wodby/drupal-nginx:{{ webserver.version|default("1.21") }}'{% elseif webserver.type == 'apache' %}'wodby/apache:2.4'{% endif %}

jurgenhaas
committed
networks:
- traefik-public
- default
{% if live is defined and live.uri is defined %}
NGINX_DRUPAL_FILE_PROXY_URL: '{{ live.uri }}'
{% endif %}

jurgenhaas
committed
NGINX_STATIC_CONTENT_OPEN_FILE_CACHE: 'off'
NGINX_ERROR_LOG_LEVEL: debug
{% elseif webserver.type == 'apache' %}
{% if webserver.overwriteconfig %}
APACHE_INCLUDE_CONF: /var/www/html/apache/vhost.conf
{% endif %}
{{ webserver.type|upper }}_BACKEND_HOST: php
{{ webserver.type|upper }}_SERVER_ROOT: /var/www/html/{{ webRoot }}/

jurgenhaas
committed
traefik.docker.network: traefik-public
traefik.http.routers.{{ webserver.type }}-{{ projectname }}.rule: Host(`{{ projectname }}.{{ traefik.domain }}`){% for domain in extradomains|default([]) %} || Host(`{{ domain }}`){% endfor %}

jurgenhaas
committed
networks:
- traefik-public
- default
VARNISH_BACKEND_HOST: {{ webserver.type }}

jurgenhaas
committed
traefik.docker.network: traefik-public
traefik.http.routers.varnish-{{ projectname }}.rule: Host(`varnish-{{ projectname }}.{{ traefik.domain }}`)
image: 'wodby/redis:{{ redis.version }}'
{% if dbbrowser.type == 'adminer' %}
image: 'wodby/adminer:{{ dbbrowser.version|default("4.6") }}'

jurgenhaas
committed
networks:
- traefik-public
- default
environment:
ADMINER_SALT: adminer-salt
labels:

jurgenhaas
committed
traefik.docker.network: traefik-public
traefik.http.services.{{ projectname }}_adminer.loadbalancer.server.port: 9000

jurgenhaas
committed
traefik.http.routers.adminer-{{ projectname }}.rule: Host(`adminer-{{ projectname }}.{{ traefik.domain }}`)
{% elseif dbbrowser.type == 'pma' %}
image: 'phpmyadmin/phpmyadmin:latest'

jurgenhaas
committed
networks:
- traefik-public
- default
depends_on:
- mariadb
environment:
PMA_HOST: mariadb
PMA_USER: drupal
PMA_PASSWORD: drupal
PHP_UPLOAD_MAX_FILESIZE: 1G
PHP_MAX_INPUT_VARS: 1G
labels:

jurgenhaas
committed
traefik.docker.network: traefik-public
traefik.http.routers.pma-{{ projectname }}.rule: Host(`pma-{{ projectname }}.{{ traefik.domain }}`)
image: 'wodby/solr:8-{{ solr.version }}'

jurgenhaas
committed
networks:
- traefik-public
- default

jurgenhaas
committed
traefik.docker.network: traefik-public
traefik.http.services.{{ projectname }}_solr.loadbalancer.server.port: 8983

jurgenhaas
committed
traefik.http.routers.solr-{{ projectname }}.rule: Host(`solr-{{ projectname }}.{{ traefik.domain }}`)

jurgenhaas
committed
networks:
- traefik-public
- default

jurgenhaas
committed
environment:
MH_OUTGOING_SMTP: /test/mhout.json
privileged: true
volumes:
- {{ projectroot }}/tests/mhout.json:/test/mhout.json

jurgenhaas
committed
traefik.docker.network: traefik-public
traefik.http.services.{{ projectname }}_mailhog.loadbalancer.server.port: 8025

jurgenhaas
committed
traefik.http.routers.mailhog-{{ projectname }}.rule: Host(`mailhog-{{ projectname }}.{{ traefik.domain }}`)

jurgenhaas
committed
networks:
- traefik-public
- default
environment:
NODE_SERVICE_KEY: '{{ node.key }}'
labels:

jurgenhaas
committed
traefik.docker.network: traefik-public
traefik.http.services.{{ projectname }}_nodejs.loadbalancer.server.port: 8080

jurgenhaas
committed
traefik.http.routers.nodejs-{{ projectname }}.rule: Host(`nodejs-{{ projectname }}.{{ traefik.domain }}`)
- {{ projectroot }}/{{ node.path }}:/app
command: sh -c 'npm install && npm run start'

jurgenhaas
committed
networks:
- traefik-public
- default

jurgenhaas
committed
traefik.docker.network: traefik-public
traefik.http.services.{{ projectname }}_node.loadbalancer.server.port: 3000

jurgenhaas
committed
traefik.http.routers.node-{{ projectname }}.rule: Host(`front-{{ projectname }}.{{ traefik.domain }}`)

jurgenhaas
committed
- '3000'
- {{ projectroot }}/{{ node.path }}:/app
image: 'wodby/memcached:1.6'
rsyslog:
image: 'wodby/rsyslog'
{% endif %}
{% if athenapdf.enable %}
athenapdf:
image: 'arachnysdocker/athenapdf-service'
environment:
WEAVER_AUTH_KEY: '{{ athenapdf.key }}'

jurgenhaas
committed
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

jurgenhaas
committed
networks:
- traefik-public
- default
environment:
WEBGRIND_PROFILER_DIR: '/mnt/files/xdebug/profiler'
labels:

jurgenhaas
committed
traefik.docker.network: traefik-public
traefik.http.services.{{ projectname }}_webgrind.loadbalancer.server.port: 8080

jurgenhaas
committed
traefik.http.routers.webgrind-{{ projectname }}.rule: Host(`webgrind-{{ projectname }}.{{ traefik.domain }}`)
- {{ projectroot }}/files:/mnt/files
volumes:
- /dev/shm:/dev/shm
privileged: true
environment:
SELENIUM_HUB_HOST: 'hub'
SELENIUM_HUB_PORT: '4444'
GRID: 'true'
CHROME: 'false'
FIREFOX: 'false'
depends_on:
- php
chrome:
depends_on:
- hub
volumes:
- /dev/shm:/dev/shm
privileged: true
environment:
NOVNC: 'true'
SELENIUM_HUB_HOST: 'hub'
SELENIUM_HUB_PORT: '4444'
SELENIUM_NODE_HOST: '{{ docker0.ip }}'
SCREEN_WIDTH: '1300'
SCREEN_HEIGHT: '999'
VIDEO: 'false'
GRID: 'false'
CHROME: 'true'
FIREFOX: 'false'
#ports:
# VNC: See what's going on by connecting your VNC client to 0.0.0.0:5900
#- 5900:25900
# noVNC: See what's going on by hitting http://0.0.0.0:6080 in your browser
# Important: http://127.0.0.1:6081 works but http://localhost:6081 doesn't
#- 6080:26080
{% endif %}
{% if elasticsearch.enable %}
elasticsearch:
image: 'wodby/elasticsearch:7'
environment:
discovery.type: single-node
ES_JAVA_OPTS: '-Xms512m -Xmx512m'
ports:
- 9200
- 9300
{% endif %}