Automatisiere deine Docker-Builds und Deployments mit buildNdeploy-docker
In der heutigen DevOps-Landschaft spielt die Automatisierung von Build- und Deployment-Prozessen eine zentrale Rolle. Je mehr Schritte sich automatisieren lassen, desto schneller, zuverlässiger und reproduzierbarer werden Deployments - ein klarer Wettbewerbsvorteil! Eine besonders effiziente Lösung für das (Re)Builden und (Re)Deployen von Docker-Images auf selbst-gehosteten Runnern findet sich im Open-Source-Repository buildNdeploy.

Was ist buildNdeploy-docker?
`buildNdeploy-docker` ist eine GitHub Action, die speziell dafür entwickelt wurde, Docker-Images automatisiert über selbst-gehostete Runner zu erstellen und auf Remote-Servern zu deployen. Sie kann sowohl für Initial-Builds als auch für erneute Builds und Deployments genutzt werden. Damit wird der komplette Prozess, vom Code-Commit bis zum laufenden Container, nahtlos in die GitHub CI/CD-Pipeline integriert.

Die Vorteile im Überblick
  • Automatische Build- und Deployment-Prozesse: Alles ausgelöst durch GitHub Actions.
  • Selbst-gehostetes Deployment: Deployments können auf deine eigene Infrastruktur abzielen für maximale Flexibilität und Unabhängigkeit.
  • Einfache Konfiguration: Der Hauptcode ist in Shell-Skripten gehalten, was hohe Transparenz und Anpassbarkeit ermöglicht.
  • Docker-Native: Der Prozess verwendet direkt Dockerfiles und folgt Best Practices beim Image-Build und Deployment.

So funktioniert es
Unter der Haube arbeitet `buildNdeploy-docker` hauptsächlich mit Shell-Skripten, die das (Re)Bauen des Docker-Images übernehmen und anschließend einen Deployment-Prozess (wie z.B. Stoppen des alten Containers, Bauen des neuen Images und Starten des neuen Containers) anstoßen.

Vereinfachter Ablauf:
  1. Source-Code-Änderung: Ein Commit im Repository (oder ein manuell ausgelöster Workflow) startet die Aktion.
  2. Image Build: Ein neues Docker-Image wird gemäß der im Repository hinterlegten Dockerfile gebaut.
  3. Image Push: Das Image wird in ein definiertes Docker-Registry (z.B. DockerHub, private oder lokale Registry) gepusht.
  4. Deployment: Das neue Image wird auf einem definierten Zielsystem per selbst-gehostetem Runner ausgerollt.
Beispiel für die GitHub Actions-Konfiguration
Ein typischer `workflow.yml`-Ausschnitt könnte folgendermaßen aussehen:
		
			name: Build and Deploy Docker Image

			on:
			  push:
				branches: [ "main" ]

			jobs:
			  build-and-deploy:
				runs-on: self-hosted
				steps:
				  - uses: actions/checkout@v4
				  - name: Build & Deploy Docker
					uses: rockerle/buildNdeploy-docker@v1
					with:
					  imagename: dockerimage:latest
					  containername: dockerContainer
					  dnetwork: dockerNetwork
					  label: |
						example-label1
						example-label2
					  env: |
						LOGIN_TOKEN={{secrets.LOGIN_TOKEN}}
						CPUS=0.5
				

Fazit
Mit `buildNdeploy-docker` schaffst du dir eine schlanke, anpassbare Plattform für automatisierte Docker-Workflows in deinem eigenen Infrastruktur-Setup. Die Lösung bleibt dabei flexibel und offen, sodass Erweiterungen oder eigene Anpassungen jederzeit möglich sind. Vor allem für Teams, die self-hosted CI/CD bevorzugen und volle Kontrolle über ihre Deployment-Umgebung brauchen, ist dieses Open-Source-Projekt einen näheren Blick wert!
Mehr Infos und den Quellcode findest du in meinem GitHub-Repository.