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:
- Source-Code-Änderung: Ein Commit im Repository (oder ein manuell ausgelöster Workflow) startet die Aktion.
- Image Build: Ein neues Docker-Image wird gemäß der im Repository hinterlegten Dockerfile gebaut.
- Image Push: Das Image wird in ein definiertes Docker-Registry (z.B. DockerHub, private oder lokale Registry) gepusht.
- 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.