Jenkins Example ReadMe File
Dateiname: README-jenkins-setup.md
Jenkins Pipeline für Spring Boot (RefCard01)
Diese Anleitung zeigt Ihnen in Jenkins (Docker) eine komplette CI/CD-Chain für ein Spring-Boot-Projekt RefCard01:
- Build & Test mit Maven (Java 17)
- Docker-Image bauen
- Push zu Container Registry (optional)
- Deployment via SSH &
docker compose(optional)
1) Jenkins-Container mit Docker-Zugriff starten
Falls bereits vorhanden, sicherstellen, dass Docker CLI im Jenkins-Container verfügbar ist und der Docker Socket gemountet wird.
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:lts
Alternativ: Docker CLI im Container nachinstallieren (apk add docker-cli bzw. apt-get install docker.io je nach Base-Image).
2) Benötigte Jenkins-Plugins
- Pipeline (Workflow Aggregator)
- Git & Git client
- Docker Pipeline (oder Docker Commons + CLI)
- Credentials Binding
- SSH Agent
- Optional: Blue Ocean
3) Credentials in Jenkins anlegen
- docker-registry-cred: Username/Passwort oder Token für Ihre Registry-Login
- docker-registry-url (optional als Secret Text, z. B.
https://ghcr.io) - deploy-ssh: SSH Private Key für den Deploy-Server
4) Dateien in Ihr Repository legen
Jenkinsfile(aus diesem Paket)Dockerfile(falls noch nicht existiert)docker-compose.yml(für Deployment auf Zielhost)
5) Pipeline-Job anlegen
- New Item → Pipeline oder Multibranch Pipeline
- SCM auf das
RefCard01-Repo zeigen lassen - Falls Parameter gewünscht (Registry/Host): im Job die Default-Werte setzen
6) Variablen / Parameter
- REGISTRY: Prefix für das Image (z. B.
ghcr.io/yourorgoderdocker.io/youruser). Leer lassen ⇒ nur lokal bauen. - VERSION: Image-Tag. Leer ⇒ automatisch aus Git (Tag/Commit).
- DEPLOY_HOST: SSH-Hostname für Deployment. Leer ⇒ kein Remote-Deploy.
- DEPLOY_PATH: Zielpfad auf dem Host (Standard
/opt/refcard01).
7) Pipeline-Verlauf
- Checkout: holt Code, ermittelt Version
- Build & Test (Maven):
mvn verifyin Containermaven:3.9-eclipse-temurin-17 - Build Docker Image: baut Image aus
Dockerfile - Login & Push (optional):
docker login+docker push - Deploy (SSH) (optional): kopiert
docker-compose.yml, setztDOCKER_IMAGEund startetdocker compose up -d
8) Deployment-Host vorbereiten
- Docker + Docker Compose V2 installiert (
docker compose version) - SSH-Zugriff vom Jenkins-Server möglich
- Zielpfad existent oder wird von Pipeline erstellt
9) Troubleshooting
- Permission denied /var/run/docker.sock → Host:
chmod/chownSocket oder Jenkins-User zurdocker-Gruppe hinzufügen. - docker not found → Docker CLI im Jenkins-Container installieren oder
/usr/bin/dockermounten. - Cannot connect to the Docker daemon → Socket richtig gemountet? Docker auf Host läuft?
- Auth failed (push) → Credentials/Registry-URL prüfen.
- Port 8080 belegt → compose-Port anpassen.