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.sock erlaubt 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.