Skip to content

Description

The dropfort build project scaffolds several files to improve your development expierance. This project contains a devcontainer which you can open in vscode. Since this project uses multiple containers docker-compose is used to make development more simple. You can see the definition for the containers here. In order for the project to work correctly there are some required environment variables. There is an example env file provided to get you started.

WARNING

The value for COMPOSE_PROJECT_NAME in your docker/.env file must be the same as in the project root .env file.

Config

Enabling features

The default docker compose file will enable the following services by default in all instance.

Default Services:

  • Apache/PHP Webserver (default container)
  • MariaDB database
  • Traefik reverse proxy
  • MailHog email inspection tool.

Additional Services:

  • Migration Source database
  • Solr Cloud
  • Memcache
  • Selenium Hub with Browsers
  • RequestBaskets HTTP Request capture tool
  • XHGui for enhanced performance profiling (beta)

You can enable additional services by adding a comma delimited list to the COMPOSE_PROFILES environment variable in docker/.env

E.g.

ini
COMPOSE_PROFILES=solr,memcache

Will enable all the default services but also turn on a Memcache server and a Solr Cloud instance.

You can find the list of available profiles by checking the profiles keywords in the docker/docker-compose.yml file in your project.

Additional options in your docker/.env file include controlling the version of PHP, NPM/NodeJS, Solr, Mariadb, etc. See the docker/.env.example file or documentation page for a list of options available.

Docker Compose

The docker-compose.yml takes care of setting up your local environment.

Docker Containers

Service NameDescriptionContainer Image
mariadb
  • Container for database.
MariaDB
drupal
  • Container for drupal site.
WebDevOps PHP Apache Dev
mailhog
  • Container for mailhog. (Managing emails)
MailHog
traefik
  • Proxy to connect docker network to local network.
Traefik
memcache
  • Memcache caching service.
Memcache
solr
  • Solr service to provide search functionality.
Solr
zookeeper
  • Zookeeper container for managing distiributed services in PHP.
Zookeeper
selenium
  • Selenium container for running browser tests.
Selenium
chrome
  • Chrome container for selenium.
Selenium Chrome
firefox
  • Chrome container for selenium.
Selenium Firefox
edge
  • Edge container for selenium.
Selenium Edge
xhgui
  • Xhgui container for profiling PHP.
XHGui
xhgui_mongodb
  • MongoDB for saving xhgui data.
MongoDB (XHGui Storage)
requestbaskets
  • Requestbaskets container for API integration testing.
RequestBaskets
jmeter
  • JMeter instance for writing performance tests.
Custom to Dropfort Build