Docker has disrupted software development in many wonderful ways. With Docker based deployments, you can ensure that your development machine, test, staging, and production environments are very similar, which really mitigates frustrating ‘it works on my machine/in a specific environment’ issues. Even better, environments can be brought up and down on demand since Docker containers are lightweight and can spin up much faster than traditional machine images.
However, adopting Docker does introduce an additional step to consider while setting up continuous delivery. You need to choose a Docker registry which provides a central place to store your images. Just like your application components, your images also need to be part of your Continuous Delivery pipeline. This ensures that any time something changes in any of your images, the image is built, versioned, and pushed to the Docker registry of your choice. This triggers the rest of the pipeline which rebuilds all dependent images and applications and runs through the rest of your Continuous Delivery workflow.
It is important to set this workflow up correctly to ensure that Docker image management is automated and is an integral part of your CD pipeline.
Shippable makes it easy to configure your DevOps pipeline so that any upstream changes to docker images trigger dependent images, which in turn triggers the resr of your continuous delivery pipeline. The following scenarios can be configured with a few lines of yml: