Practical Docker: Lessons learned in building Docker-based stacks for local development and continuous integration

Who this is for:

  • Individuals who have read about Docker, or worked through a few getting started tutorials, and want to take the next steps to integrate Docker into their development and testing workflow, including considerations for working with teams.

What you will walk away with:

  • By the end of the session, you will have a blueprint for what steps you can take to implement a Docker-based stack for local and test environments, and helpful information on how to dodge costly pitfalls.

Over the past few years, Docker has grown in popularity and more teams are looking to use it in development and production environments. However, there is a steep learning curve from a simple "get started with Docker in 5 minutes" tutorial to a polished build that will work reliably across the team's machines and your test/QA environments.

At Savas Labs, we have invested heavily in consolidating our local development and test environments on Docker-based stacks for our Drupal websites. It has not been an easy journey but there have been many significant benefits for us in doing so, and we would like to share our experience and knowledge with you! This session is best suited for those who have a little or some familiarity with Docker, although both people who have no Docker experience, and those who are already using it in their day to day work, are very welcome to attend and will learn from the session too.

This session will provide practical advice for individuals and teams who want to make effective use of Docker for their local development and test environment pipeline.

Based on the 25 minute or 60 minute time limit, this session will cover some or all of the following:

  1. Considerations for how to build your own Docker image to match a production environment
  2. When you would want to build your own image, and when it makes sense to use a prebuilt image
  3. How you can use the basic building blocks of Docker, GNU Make, and Amazon Web Services S3 to run a site locally or in a test environment (Travis CI)
  4. Integrating Blackfire/New Relic/XDebug in your Docker image
  5. Tips and tricks for speeding up build cycles by using Docker Sync and MySQL data volume imports
  6. How to construct a continuous integration pipeline with these components
  7. Problems teams may run into and workarounds for those issues
  8. How to convince your teammates to adopt Linux based laptops as their primary development platform. Or in the event of failing to do so, how to achieve peaceful coexistence between Linux and MacOS/Windows users of your Docker stack.

Session Track

DevOps

Experience level

Intermediate

Drupal Version

N/A