DrupalCon Baltimore 2017: Docksal: Better than VMs

Update: BoF for QnA and follow-up discussions: Room 311 @ 3:45PM

Getting a project up and running locally should be something "quick and easy". Pull the code, start the stack, maybe grab a DB dump and files, import. Done.

Unfortunately, the reality is somewhat different. Too often that takes hours or even days. Manual setup is tedious, VMs and Vagrant boxes take forever to build or fail to build at all. Developers spend time dealing with sysadmin issues and configurations instead of writing code.

Let's see how all of this can be handled with just two commands.


git clone -project-repo
fin init
This is the workflow we are using at FFW and we are doing that with Docksal.

Docksal is an open-source tool created by FFW for defining and managing development environments. It brings together common development tools, minimizes time spent on configuration, and ensures the consistency of local development environments throughout a team’s continuous integration workflow.

Docksal automatically configures each project's environment to ensure team members are using the same tools, and versions, regardless of the individual requirements of each project. Most importantly, it makes the entire process easy. Docksal offers fully containerized environments with Docker, provides cross-platform support (MacOS, Windows, and Linux,) and has built-in tools that include:

Drush (6,7,8), Drupal Console, WP-CLI, Composer, PHP Code Sniffer
Ruby (with bundler), Node.js (with nvm, nmp), Python
Apache Solr, Varnish, Memcache and more (including BYO)
Built-in testing support with Behat and Selenium
Zero configuration Xdebug support with PhpStorm
Docksal will even automatically configure virtual hosts for you, so no more editing host files and server configurations.

In this session we will:

Go over the basics of using Docker for local development
Compare the Docker based vs the VM based approach
Go over the pain points that Docksal eliminates
Initialize instant environments with zero configuration
Get a Drupal7 and a Drupal8 site running side by side using different stack versions
See how Docksal can be integrated into an existing project
Have a sneak peek into some more advanced use case supported in Docksal (e.g. complex, production-like stacks)
Prior experience using VMs and/or Docker is a plus, but not required.

Drupal is a registered trademark of Dries Buytaert.