Jenkins - Build-Automatisierung und CI-CD selbst betreiben
Jenkins - Build-Automatisierung und CI-CD selbst betreiben
Jenkins ist der meistgenutzte Open-Source-Automatisierungsserver für Continuous Integration und Continuous Delivery, vollständig selbst betreibbar ohne Cloud-Abhängigkeit.
Was ist Jenkins?
Jenkins koordiniert Build-, Test- und Deployment-Pipelines für Softwareprojekte jeder Größe. Über ein umfangreiches Plugin-Ökosystem (über 1.800 Plugins) lässt sich Jenkins mit nahezu jeder Technologie verbinden: Git, GitHub, Docker, Kubernetes, Maven, Gradle, Ansible und viele mehr. Pipelines werden als Code in Jenkinsfile-Dateien im Repository definiert und versioniert. Jenkins ist besonders stark, wenn vollständige Kontrolle über den CI/CD-Stack erforderlich ist.
Voraussetzungen
- Docker 20.10+ / Docker Compose
- Mindestens 1 GB RAM (2 GB empfohlen)
- Docker-Socket-Zugriff für Docker-in-Docker-Builds (optional)
Compose-Beispiel
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
restart: unless-stopped
ports:
- "8080:8080"
- "50000:50000"
volumes:
- ./jenkins-data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
environment:
- TZ=Europe/Berlin
Hinweise
- Beim ersten Start gibt Jenkins ein einmaliges Admin-Passwort in den Logs aus (
docker logs jenkins), das zur initialen Einrichtung benötigt wird. - Port 50000 wird für die Verbindung von Jenkins-Agenten (Build-Nodes) benötigt — bei reiner Einzelknoten-Installation kann er geschlossen werden.
- Das Mounten von
/var/run/docker.sockerlaubt Jenkins, Docker-Container als Build-Schritte zu starten; dies sollte nur in vertrauenswürdigen Umgebungen aktiviert werden. - Regelmäßige Backups des
./jenkins-data-Verzeichnisses sichern alle Jobs, Konfigurationen und Plugin-Daten.