Deploying to a remote Docker swarm using Jenkins
The workflow for my sample application uses a manual quality gate and separates the concerns for local and external artifacts. On every source code push, the solution is deployed locally and tests are run. If they pass, images are saved to the local registry. The final deployment stage is to push these images to an external registry and deploy the application to the public QA environment. This simulates a project approach where builds happen internally, and approved releases are then pushed externally.
In this example, I'll use public repositories on Docker Hub and deploy to a Windows VM in Microsoft Azure running as a single-node Docker swarm. I'll continue to use PowerShell scripts and run basic docker
and docker-compose
commands. The principles are exactly the same to push images to other registries and deploy to larger Docker swarms or to Universal Control Plane (UCP) running on Docker Enterprise Edition (DockerEE).
I've created a new Jenkins...