Skip to content

Instantly share code, notes, and snippets.

@welly
Created November 5, 2017 20:38
Show Gist options
  • Save welly/bf395a2b121493168c16d5dfc3cb2228 to your computer and use it in GitHub Desktop.
Save welly/bf395a2b121493168c16d5dfc3cb2228 to your computer and use it in GitHub Desktop.
Docker compose for Docker4Drupal
version: "2"
services:
mariadb:
image: wodby/mariadb:10.1-2.3.5
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: drupal
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal
volumes:
- ./db:/var/lib/mysql # I want to manage volumes manually.
php:
image: wodby/drupal-php:7.1-3.0.0
environment:
PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
PHP_FPM_CLEAR_ENV: "no"
DB_HOST: mariadb
DB_USER: drupal
DB_PASSWORD: drupal
DB_NAME: drupal
DB_DRIVER: mysql
PHP_XDEBUG: 1
PHP_XDEBUG_DEFAULT_ENABLE: 1
PHP_XDEBUG_REMOTE_CONNECT_BACK: 0
PHP_XDEBUG_REMOTE_HOST: "10.254.254.254"
# PHP_XDEBUG_PROFILER_OUTPUT_DIR: /mnt/files/xdebug/profiler
# PHP_XDEBUG_TRACE_OUTPUT_DIR: /mnt/files/xdebug/traces
volumes:
# - ./drupal:/var/www/html # User-guided caching
- codebase:/var/www/html:cached # User-guided caching
- docker-sync:/var/www/html # Docker-sync
nginx:
image: wodby/drupal-nginx:8-1.13-3.0.1
depends_on:
- php
environment:
NGINX_STATIC_CONTENT_OPEN_FILE_CACHE: "off"
NGINX_ERROR_LOG_LEVEL: debug
NGINX_BACKEND_HOST: php
NGINX_SERVER_ROOT: /var/www/html/web
volumes:
# - ./drupal:/var/www/html # User-guided caching
- codebase:/var/www/html:cached # User-guided caching
- docker-sync:/var/www/html # Docker-sync
labels:
- 'traefik.backend=nginx'
- 'traefik.port=80'
- 'traefik.frontend.rule=Host:drupal.docker.local'
# varnish:
# image: wodby/drupal-varnish:4.1-2.2.0
# depends_on:
# - nginx
# environment:
# VARNISH_SECRET: secret
# VARNISH_BACKEND_HOST: nginx
# VARNISH_BACKEND_PORT: 80
# labels:
# - 'traefik.backend=varnish'
# - 'traefik.port=6081'
# - 'traefik.frontend.rule=Host:varnish.drupal.docker.localhost'
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=pma'
- 'traefik.port=80'
- 'traefik.frontend.rule=Host:pma.drupal.docker.local'
mailhog:
image: mailhog/mailhog
labels:
- 'traefik.backend=mailhog'
- 'traefik.port=8025'
- 'traefik.frontend.rule=Host:mailhog.drupal.docker.local'
portainer:
image: portainer/portainer
command: --no-auth -H unix:///var/run/docker.sock
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- 'traefik.backend=portainer'
- 'traefik.port=9000'
- 'traefik.frontend.rule=Host:portainer.drupal.docker.local'
traefik:
image: traefik
command: -c /dev/null --web --docker --logLevel=INFO
ports:
- '8000:80'
- '8080:8080' # Dashboard
volumes:
- /var/run/docker.sock:/var/run/docker.sock
volumes:
codebase:
docker-sync:
external: true
## For Xdebug profiler
# files:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment