Drupal on Docker with mSMTP and Traefik Support

Drupal on Docker with mSMTP and Traefik Support

Overview

In this tutorial I will share my Drupal on docker setup, for versions 6/8. The stack includes Drupal (with mSMTP), MariaDB, Adminer, Backup and Traefik support.

Drupal on docker Setup

  1. clone the repo:
  2. edit .env file: # Should be the same as folder: replace 8 with 6 for Druapl6 podName=docker-druapl8 # VirtualHost address hostRule=druapl8.docker.localhost adminerHostRule=adminer.wordpress.docker.localhost # Database credentials dbName=exampledatabase dbUser=exampleuser dbPass=examplepass # Time Zone timeZone=Asia/Jerusalem
  3. create msmtp/msmtprc from provided msmtprc.example
  4. change permissions and ownership of msmtprc file: chown 33:33 msmtprc chmod 600 msmtprc

Network settings

The stack is divided into two networks, backend and frontend.

the idea behind splitting the stack into two networks is to block the access of the reverse proxy to the backend containers.

both networks are unique and will be named with stackname_networname such as:

  • docker-drupal8_backend
  • docker-drupal8_frontend

after running docker-compose up you need to connect your reverse proxy to your new frontend network: you can do that manually using:

  • docker network connect docker-drupal8_frontend PROXY_CONTAINER_NAME

if you are using my Traefik setup there is a ‘connect.sh’ script included that will connect all your frontend networks to your Traefik container.