This chapter covered CI/CD in Docker with a sample deployment workflow configured in Jenkins. Every part of the process I demonstrated ran in Docker containers: the Git server, Jenkins itself, the build agents, the test agents, and the local registry.
You saw that it is straightforward to run your own development infrastructure with Docker, giving you an alternative to hosted services. It's also straightforward to use these services for your own deployment workflow, whether it's full CI/CD or separate workflows with a gated manual step.
You saw how to configure and run the Gogs Git server and the Jenkins automation server in Docker to power the workflow. I used multi-stage builds for all the images in my latest cut of the NerdDinner code, which means that I can have a very simple Jenkins setup with no need to deploy any toolchains or SDKs.
My CI pipeline was...