Tired of using the excuse, "Hey, it worked on my machine!" post-deployment? Well, it's time to do something about it, but what?
Docker has changed the way we do development and helped move away from having local environments that can be tedious to manage for multiple sites and hosts. Docksal runs on top of Docker and creates development environments faster and more efficiently than trying to maintain your own Dockerfiles
We're going to learn how containerized local development can simulate your production environment so that you have the same versions of PHP, Apache, MySQL, Solr, and all the other things that your hosting provider has so you're sure that when you deploy, your code isn't going to make your production site explode with WSOD errors that will have you putting out fires until the wee hours of the morning.
In this training, we're going to cover:
- Docker Basics
- A high-level overview of Docker, how Docker works, and the differences between an image, a container, and a volume.
- Why Containerize?
- What are the advantages of using containers for development vs local *AMP stacks?
- Why Use More Than Just Docker?
- Why should we consider using something more than just Docker to containerize? What are the advantages to using something like Docksal to wrap up all of our Docker functionality? In this section we'll go over how using a dev environment like Docksal makes development easier and faster compared to vanilla Docker.
Intro to Docksal
- What's a Docksal?
- Where did it come from? Was it handed to us by aliens in hopes that it would change the world one local dev environment at a time? Nope, but we will cover where Docksal came from and what differences there are between Docksal and some of the other containerized dev environments out there.
- Docksal Stacks
- Let's take a look at what a stack is and why we have them.
- Boilerplates and Starterkits
- It's not just for Drupal! Let's explore a few of the available boilerplate projects that are in the Docksal Github Repo
- What's in the Box?
- We're going to explore some of the tools that are included with Docksal straight out of the box. Many should feel very familiar.
- Your First "fin up"
- Let's make sure everything is installed correctly and that you're able to get Docksal running and see the default page.
- Spinning up a Drupal Site
- We're going to spin up a basic Drupal 8 site using the Docksal Drupal 8 boilerplate and take a look at some of the things that Docksal needs to run within a Drupal codebase.
- Keep it Local
- Not all settings need to make it into your repo. In fact, it's better if some don't so that you don't accidentally push an API key into a public repo. We're going to find out how to make sure we keep private stuff on our local environment only.
- Addons, Addons, Addons
- Using addons to make your life easier. We'll explore some of the available addons, what they do, and how to install them.
- Customizing Your Environment
- When a stack only gets you 90% of the way there, you might need just a little more to get you the rest of the way. We'll explore some options for making customizations and tweaking existing services to do what you need them to do.
- Creating Your Own Services
- Customizing just not doing it for you? Let's build a service to help you make sure your environment is exactly what you need it to be.
- Adding Docksal to an Existing Project
- We'll cover how to take a current Drupal project and wrap it up in a nice, warm Docksal blanket by pulling a codebase, installing a site, and importing a database.
- Docksal: It's Not Just for Local Anymore
- Let's explore some other uses for Docksal that aren't your local machine. Docksal can be used for CI builds and sandbox environments.
Q & A and Troubleshooting
- Towards the end of the day we'll open up the conversation and see if there are any unanswered questions or issues that are preventing you from using Docksal in your everyday life.
Attendees will also learn what addons, boilerplate installs, and stacks are available out of the box and how to extend them or create new ones.
To prepare for this training you will need:
- A computer capable of running either a native Docker install or a virtual machine to install Docker. I suggest VirtualBox.
- Note: I don't have much experience debugging non-Unix/Linux systems, so please check your Windows install before the training begins.
- A basic understanding of command line tools.
- Some knowledge of Bash scripting.
- Some knowledge of general programming concepts.
- Note: A deep knowledge of Drupal development is not necessary, but knowing general programming concepts will help out a lot.