Services such as source control and the image registry are good candidates to be shared between many projects. They have similar requirements for high availability and reliable storage, so they can be deployed across a cluster that has enough capacity for many projects. The CI server can be run as a shared service or as a separate instance for each team or project.
I covered running a private registry in a Docker container in Chapter 4, Pushing and Pulling Images from Docker Registries. Here, I'll look at running a Git server and a CI server in Docker.
Bonobo is a popular open source Git server. It's written in ASP.NET using the full .NET Framework, and you can easily package it as a Docker image based on Windows Server Core. Bonobo is a simple Git server; it provides remote repository access over HTTP and HTTPS, and it has a web UI. It supports integrated Windows authentication, but I won't cover...