Flight Deck: A Set of Docker Containers for Local Drupal Development
Update 07/13/2021: See flightdeck.ten7.com for the latest about Flight Deck.
The standard for local development environments for Drupal used to be MAMP, WAMP, or Acquia Dev Desktop. In recent years, however, we’ve seen a wealth of alternatives like Drupal VM, Lando, Docksal, and DDEV, which all leverage virtualization technologies.
At TEN7, we’ve been steadily developing and migrating to our own solution, Flight Deck.
What is Flight Deck?
Flight Deck is a set of Docker containers for local Drupal development. Unlike other solutions, Flight Deck is not an application or command you need to install, but a library of containers that can support any Drupal 6, 7, or 8 project.
Flight Deck is designed to be small and light on resources. It provides a complete set of infrastructure to run your Drupal site, while minimizing the space taken up on your hard drive. This includes Apache, PHP, MySQL, phpMyAdmin, Memcache and Apache Solr.
Why Flight Deck?
When we began creating Flight Deck, there weren’t many Docker-based solutions for local Drupal development. Furthermore, our team faced a unique set of challenges. We are mixed-OS, with some on macOS and others on Linux. We support many different projects, from legacy Drupal 6 sites to the latest Drupal 8 sites. As such, we needed to switch between vastly different infrastructure requirements and tools quickly and consistently.
Flight Deck allows us to achieve all these goals with a minimum of complexity, set-up, and resource overhead. As a pure Docker-based solution, one only needs to download and install the latest version of Docker to use Flight Deck.
Flight Deck is also a per-project solution. This allows you to try it out on just one project, while keeping your existing local development environment the same for other sites. Once a project is set up, it only needs two files added to the repository to share the same, standardized environment with every member of your team.
Installing and using Flight Deck
Before using Flight Deck, you need to download and install Docker. Docker provides specific packages for macOS and for Windows. If you’re using Linux, consult your distribution’s documentation for how to install Docker.
Once Docker is installed and running, you need to download two files from our Github repository:
docker-compose.[your version of drupal].yml
Download the Compose file for your version of Drupal. The docker-compose.d7-apache.yml file supports Drupal 6 and 7, and docker-compose.d8-apache.yml supports Drupal 8.
Rename the Compose file to docker-compose.yml, and then start up the containers:
docker-compose up -d
Using Flight Deck
Once running, you can visit http://localhost to access the site. You can load databases by connecting your SQL client to the MySQL default port, 3306.
While Flight Deck is minimal, it comes with a full set of command line tools to support your application development:
- Drupal console
- nodeJS and npm
You only need to enter into the web container to access any of these commands:
docker-compose exec web /bin/bash
Then, run drush or your favorite tool as normal!
Need to debug some code or profile your site’s speed? Flight Deck has you covered! XDebug can be easily enabled by changing a few key lines of the .env settings file. Profiling is also just as easy to enable, and by using WebGrind, you can inspect the profile files without the need to install any further software.
Flight Deck is a minimal Docker-based, local Drupal development environment. It’s small to download and light on your system’s resources. It can be deployed on a per-project basis, so there’s no need to commit. Download the required files from the Flight Deck Github repository today!