Docker, wie wir wissen, ist eine offene Plattform für Entwickler und Systemadministratoren zum Erstellen, Versenden und Ausführen verteilter Anwendungen, sei es auf Laptops, VMs im Rechenzentrum oder in der Cloud.
Heute werden wir überprüfen, wie Jenkins so konfiguriert wird, dass Docker-Images basierend auf einer Docker-Datei erstellt werden. Im Folgenden finden Sie die Schritte, wie Sie Docker in einer CI / CD-Pipeline verwenden können, indem Sie Images als Build-Artefakt verwenden, das in verschiedene Umgebungen und schließlich in die Produktion hochgestuft werden kann.
Schritt #1 : Starten Sie Jenkins
Derzeit läuft Jenkins auf dem Docker-Container.Wenn Sie den Befehl docker ps
ausführen, wird der Status des Containers angezeigt.
Starten Sie das Dashboard von Jenkins
Schritt 2: Konfigurieren Sie die Plugins und starten Sie die Erstellung von Docker-Images.
Unser 1. Schritt ist die Konfiguration des Docker-Plugins. Wann immer ein Jenkins-Build Docker erfordert, wird über das Plugin ein „Cloud Agent“ erstellt. Der Agent ist ein Docker-Container, der für die Kommunikation mit unserem Docker-Daemon konfiguriert ist.Der Jenkins-Build-Job verwendet diesen Container, um den Build auszuführen und das Image zu erstellen, bevor er gestoppt wird. Das Docker-Image wird auf dem konfigurierten Docker-Daemon gespeichert. Das Image kann dann zur Bereitstellung in eine Docker-Registrierung verschoben werden.
- Wenn Sie sich im Jenkins-Dashboard befinden, wählen Sie links Jenkins verwalten aus.
- Wählen Sie auf der Konfigurationsseite Plugins verwalten aus.
- Plugins verwalten Seite gibt Ihnen eine Tabbed-Schnittstelle. Klicken Sie auf Verfügbar, um alle Jenkins-Plugins anzuzeigen, die installiert werden können.
- Suchen Sie im Suchfeld nach dem Docker-Plugin. Es gibt mehrere Docker-Plugins, wählen Sie Docker Plugin über das Kontrollkästchen.
- Installieren Sie auf dieser Seite das Git-Plugin, um den Quellcode aus einem Git-Repository abzurufen.
- Klicken Sie unten auf Installieren ohne Neustart.
- Die Plugins werden nun heruntergeladen und installiert. Sobald Sie fertig sind, klicken Sie auf den Link Zurück zur Startseite.
Sobald die Docker & GIT-Plugins installiert wurden, können wir jetzt konfigurieren, wie sie die Docker-Container starten.
Produkte von Amazon.in
- -17%
- Mastering Docker –
- Preis: INR 828.00
- War: INR 999.00
- -17%
- Continuous Delivery mit Docker und Jenkins
- Preis: INR 829.00
- Preis: INR 999.00
- Docker und Kubernetes für Java-Entwickler
- Preis: INR 828.00
- Docker unter Windows
- Preis: INR 828.00
- Docker: Betriebsbereit – Versand Zuverlässiger Container in Produktion
- Preis: Nicht auf Lager
- Docker : Ein Schnellstart-Anfängerleitfaden
- Preis: Überprüfen Sie auf Amazon
- Docker Deep Dive
- Preis: Überprüfen Sie auf Amazon
- Docker: 5 Bücher in 1- Anfängerleitfaden+ Tipps & Tricks+ Einfache & Effektive Strategien+ Best Practices & Fortgeschrittene Strategien
- Preis: Überprüfen Sie auf Amazon
- Ry’s Git Tutorial
- Preis: Überprüfen Sie auf Amazon
‹ ›
Die Konfiguration würde vom Plugin verwendet, welches Docker-Image den Agenten verwenden soll und auf welchem Docker-Daemon die Container und Builds ausgeführt werden sollen.Das Plugin behandelt Docker als Cloud-Anbieter und dreht Container, sobald der Build dies erfordert.
Schritt 3: Konfigurieren des Docker-Agenten
- Wählen Sie im Jenkins-Dashboard Jenkins verwalten aus.
- Wählen Sie System konfigurieren, um auf die wichtigsten Jenkins-Einstellungen zuzugreifen.
- Unten befindet sich eine Dropdown-Liste mit dem Namen Neue Cloud hinzufügen. Wählen Sie Docker aus der Liste aus.
- Sie können nun die Containeroptionen konfigurieren. Legen Sie den Namen des Agenten auf docker-agent fest.
- In der „Docker-URL“ startet Jenkins den Agent-Container. In diesem Fall verwenden wir denselben Daemon wie Jenkins, aber im realen Szenario sollte es sich um eine separate Instanz handeln, damit sie skaliert werden kann.
- Verwenden Sie Test Connection , um zu überprüfen, ob Jenkins mit dem Docker-Daemon kommunizieren kann. Sie sollten die zurückgegebene Docker-Versionsnummer sehen.
Jetzt kann das Plugin mit Docker kommunizieren, der nächste Schritt wäre die Konfiguration, wie das Docker-Image für den Agenten gestartet wird.
- Wählen Sie im Dropdown-Menü Bilder die Option Docker-Vorlage hinzufügen aus.
- Verwenden Sie für das Docker-Image ein Beispiel mit dem Docker-Client benhall / dind-jenkins-agent. Dieses Image ist mit einem Docker-Client konfiguriert und unter https://hub.docker.com/r/benhall/dind-jenkins-agent/
- verfügbar.
- Jenkins verwendet SSH, um mit Agenten zu kommunizieren. Fügen Sie einen neuen Satz von „Anmeldeinformationen“ hinzu. Der Benutzername ist jenkins und das Passwort ist Jenkins.
- Erweitern Sie abschließend den Abschnitt Containereinstellungen, indem Sie auf die Schaltfläche klicken. Geben Sie im Textfeld „Volumes“ /var/run/docker ein.socke: / var/ run/ docker.klicken Sie
- Auf Speichern.
Schritt 4: Testen Sie das Setup
Um das Setup zu testen, erstellen Sie einen neuen Job für
- Wählen Sie im Jenkins-Dashboard Neue Jobs vom Typ Freestyle project & create new job ex.Jenkins Demo.
- Der Build hängt vom Zugriff auf Docker ab. Mit „Einschränken, wo dieses Projekt ausgeführt werden kann“ können wir das Label definieren, das wir für unseren konfigurierten Docker-Agenten festgelegt haben. Das Set „Label Expression“ auf Docker-agent. Sie sollten die Konfiguration „Label wird von keinen Knoten und 1 Cloud bedient“ haben.
- Wählen Sie den Repository-Typ als Git und legen Sie das Repository fest.Ich verwende meinen GIT-Speicherort https://github.com/karthi4india/jenkins/.
- Wir können jetzt einen neuen Build-Schritt über das Dropdown-Menü hinzufügen. Wählen Sie Shell ausführen.
- Dockerfile kümmert sich um build, Jenkins muss nur build aufrufen und einen Anzeigenamen angeben.
Schritt erstellen :
ls
docker info
docker build -t jenkins-demo:${BUILD_NUMBER} .
docker tag jenkins-demo:${BUILD_NUMBER} jenkins-demo:latest
docker images
Der erste Befehl listet alle Dateien in dem Verzeichnis auf, das erstellt werden soll. Beim Aufruf von Docker build verwenden wir die Jenkins Build-Nummer als Image-Tag. Dies ermöglicht es uns, unsere Docker-Images zu versionieren. Wir markieren den Build auch mit latest.
Docker-Datei:
FROM scratch
EXPOSE 80
COPY http-server /
CMD
Wählen Sie auf der linken Seite Jetzt erstellen aus. Sie sollten einen geplanten Build mit der Meldung „(ausstehend — Warten auf den nächsten verfügbaren Executor)“ sehen.
Jenkins startet den Container und stellt über SSH eine Verbindung zu ihm her. Manchmal kann dies ein oder zwei Minuten dauern.
Sie können den Fortschritt mit sehen
docker logs --tail=10 jenkins
Sobald der Build abgeschlossen ist, sollten Sie das Bild und die Tags mithilfe der Docker-CLI sehen
docker images
Wie dieser Beitrag? Vergiss nicht, es zu teilen!