Skip to content

Instantly share code, notes, and snippets.

@jlowry
Created June 1, 2017 08:50
Show Gist options
  • Save jlowry/74e5ff2f32190cf4262880dc332e1e43 to your computer and use it in GitHub Desktop.
Save jlowry/74e5ff2f32190cf4262880dc332e1e43 to your computer and use it in GitHub Desktop.
Docker compose file for Drupal
version: "2"
services:
mariadb:
image: wodby/mariadb:10.1-2.1.0
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: drupal
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal
ports:
- '3306:3306'
volumes:
- ./mariadb-init:/docker-entrypoint-initdb.d # Place init .sql file(s) here.
# - /path/to/mariadb/data/on/host:/var/lib/mysql # I want to manage volumes manually.
php:
# 1. Images with vanilla Drupal – wodby/drupal:[DRUPAL_VERSION]-[PHP_VERSION]-[STABILITY_TAG].
# image: wodby/drupal:8-7.1-2.1.2
# image: wodby/drupal:8-7.0-2.1.2
# image: wodby/drupal:7-7.1-2.1.2
# image: wodby/drupal:7-7.0-2.1.2
# image: wodby/drupal:7-5.6-2.1.2
# image: wodby/drupal:6-5.6-2.1.2
# image: wodby/drupal:6-5.3-2.1.2
# 2. Images without Drupal – wodby/drupal-php:[PHP_VERSION]-[STABILITY_TAG].
image: wodby/drupal-php:7.1-2.1.0
# image: wodby/drupal-php:7.0-2.1.0
# image: wodby/drupal-php:5.6-2.1.0
# image: wodby/drupal-php:5.3-2.1.0
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: 1
PHP_XDEBUG_DEFAULT_ENABLE: 1
PHP_XDEBUG_REMOTE_CONNECT_BACK: 0 # This is needed to respect remote.host setting bellow
PHP_XDEBUG_REMOTE_HOST: "192.168.99.1" # You will also need to 'sudo ifconfig lo0 alias 10.254.254.254'
volumes:
- ./lambeth:/var/www/html
# - docker-sync-unison:/var/www/html # Docker-sync for macOS users
nginx:
# wodby/drupal-nginx:[DRUPAL_VERSION]-[NGINX_VERSION]-[STABILITY_TAG].
image: wodby/drupal-nginx:8-1.10-2.1.0
# image: wodby/drupal-nginx:7-1.10-2.1.0
# image: wodby/drupal-nginx:6-1.10-2.1.0
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
volumes:
- ./lambeth:/var/www/html
# - docker-sync-unison:/var/www/html # Docker-sync for macOS users
labels:
- 'traefik.backend=nginx'
- 'traefik.port=80'
- 'traefik.frontend.rule=Host:drupal.dockerhost'
# varnish:
# image: wodby/drupal-varnish:4.1-2.1.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.dockerhost'
# redis:
# image: wodby/redis:3.2-2.1.0
# 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.dockerhost'
# solr:
## wodby/drupal-solr:[DRUPAL_VERSION]-[SOLR_VERSION]-[STABILITY_TAG].
# image: wodby/drupal-solr:8-6.4-2.0.0
## image: wodby/drupal-solr:8-6.3-2.0.0
## image: wodby/drupal-solr:8-5.5-2.0.0
## image: wodby/drupal-solr:7-6.4-2.0.0
## image: wodby/drupal-solr:7-6.3-2.0.0
## image: wodby/drupal-solr:7-5.5-2.0.0
# environment:
# SOLR_HEAP: 1024m
# labels:
# - 'traefik.backend=solr'
# - 'traefik.port=8983'
# - 'traefik.frontend.rule=Host:solr.drupal.dockerhost'
mailhog:
image: mailhog/mailhog
labels:
- 'traefik.backend=mailhog'
- 'traefik.port=8025'
- 'traefik.frontend.rule=Host:mailhog.drupal.dockerhost'
# node:
# image: node:7-alpine
# working_dir: /app
# labels:
# - 'traefik.backend=node'
# - 'traefik.port=3000'
# - 'traefik.frontend.rule=Host:front.drupal.dockerhost'
# expose:
# - "3000"
# volumes:
# - ./path/to/your/single-page-app:/app
# command: sh -c 'npm install && npm run start'
# memcached:
# image: wodby/memcached:1.4-2.0.0
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
# Docker-sync for macOS users
#volumes:
# docker-sync-unison:
# external: true
volumes:
codebase:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment