Setup a Docker Registry with a self-signed HTTPS certificate.The instructions and the infra-as-code provided in this post will create the foundation for future blogs that will contain a CI/CD component. In addition, a Docker Registry is setup and integrated into the CI/CD pipeline for custom Docker images. Additionally, there are manual instructions on how to setup Gitlab runners on Ubuntu 20.04, Ubuntu 20.04 with Docker, Windows 10, Windows 10 with Docker, and macOS Big Sur. One of the deliverables from this blog post is Docker composes for Swarm and non-swarm deployments of Gitlab. The purpose of this blog post is to provide instructions on how to setup the necessary components (Gitlab and Gitlab runners) to create a CI/CD pipeline. A CI/CD pipeline will revolutionize your workflow to push code to production. Are you tired of manually pushing code to production? Are you always searching through your BASH history to find the commands you used to test your code? Do you wish the process to merge code into production had a defined process? Well I have the solution for you! Introducing Gitlab CI/CD pipelines! With Gitlab you can setup Gitlab runners to create a CI/CD pipeline.