Auf dieser Seite üben wir CI / CD mit "katacoda" (https://www.katacoda.com/), einem "Webdienst, mit dem Sie Studieninstanzen kostenlos über einen Browser starten können". Der Inhalt folgt dem obigen Link. Wenn Sie Fragen haben, gehen Sie bitte dorthin.
Hier stellen wir ein Beispiel für die Verwendung von Jenkins vor, die den Kern von CI / CD bilden. Überprüfen Sie ** Übersicht **, um eine schnelle Bestätigung dessen zu erhalten, was Sie in diesem Szenario lernen werden ** Wenn Sie Fehler in Ihrem Verständnis haben, lassen Sie es uns bitte wissen **
- Befolgen Sie die nachstehenden Schritte, um einen Container mit Jenkins zu erstellen
Launch Jenkins Führen Sie zunächst den folgenden Befehl aus, um Jenkins als Docker-Container auszuführen.
docker run -d -u root --name jenkins \ //Hintergrundausführung, Root-Benutzer, Containername"jenkins"
-p 8080:8080 -p 50000:50000 \ //Port 8080 ist für das Web-Dashboard und Port 50000 für die Kommunikation mit Jenkins Agent
-v /root/jenkins_2112:/var/jenkins_home \ //Host-seitiger Mount-Pfad und Container-seitiger Pfad
jenkins/jenkins:2.112-alpine
Diesmal gibt es ein anderes Host-Terminal Für den Zugriff ssh Verbindung
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6048602eb5b9 jenkins/jenkins:2.112-alpine "/sbin/tini -- /usr/…" 2 minutes ago Up2 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins
Wechseln Sie nach Bestätigung des erfolgreichen Verlaufs des Containers von diesem Link (Standard).
Um sich anzumelden, `` admin```,
`344827fbdbfb40d5aac067c7a07b9230```
Die Umgebung ist so
Configure Docker Plugin Stellen Sie hier das Docker-Plugin ein Durch Festlegen des Docker-Plugins können Jenkins über den Agenten mit dem Docker-Daemon kommunizieren (siehe die folgende schematische Darstellung).
Klicken Sie im Dashboard wie folgt Jenkins verwalten> Plugins verwalten> Docker auf der verfügbaren Registerkarte> Ohne Neustart installieren
Dieses Plugin wird als Cloud-Anbieter behandelt Der Container (Jenkins Agent) startet nur bei der Kommunikation mit dem Docker-Host.
Add Docker Agent Stellen Sie hier die Konfiguration so ein, dass der Container in dem zuvor vorbereiteten Agenten gestartet wird.
Klicken Sie im Dashboard wie folgt
Geben Sie `tcp: //172.17.0.67: 2345``` (Docker-Server) unter" Docker "> Docker-Host-URI über Jenkins verwalten> System konfigurieren> Neue Cloud hinzufügen ein Erfolgreiche Kommunikation mit dem Docker-Daemon mit diesem Verfahren Vergleichen Sie zur Überprüfung das Ergebnis von
Test Connection `` des Docker Host URI mit dem Ergebnis der Eingabe von `` Docker-Version
`` auf der Konsole.
$ docker version
Client:
Version: 18.05.0-ce
API version: 1.37
Go version: go1.9.5
Git commit: f150324
Built: Wed May 9 22:16:25 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.03.0-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.10
Git commit: 0520e24302
Built: Fri Mar 23 01:48:12 2018
OS/Arch: linux/amd64
Experimental: false
Legen Sie als Nächstes den Agentencontainer fest
Create Build Project Stellen Sie hier den Container ein, der mit dem zuvor erwähnten "Jenkins-Agenten" ausgeführt werden soll. Das Verfahren ist wie folgt
`Neue Jobs erstellen
``Execute Shell``` aus`
Add Build Step```, beschreiben Sie die Details des Builds wie folgt und speichern Siels
docker info
docker build -t katacoda/jenkins-demo:${BUILD_NUMBER} .
docker tag katacoda/jenkins-demo:${BUILD_NUMBER} katacoda/jenkins-demo:latest
docker images
Build Project
Führen Sie hier tatsächlich den von Jenkins erstellten Container über das Dashboard aus
build now
Klicken
Der Jenkins-Agent-Container wird vom Jenkins-Container aus gestartet, und es dauert einige Zeit, den Container basierend auf der Docker-Datei von Git von dort aus zu starten. Gelegentlich zeigt das Dashboard den Fehler "Ausstehend" an - Jenkins hat keinen Label-Docker-Agenten.
View Console Output Nachdem Sie bestätigt haben, dass der Container von Jenkins gestartet wurde, führen Sie den Container auf der Konsole aus.
$ docker run -d -p 80:80 katacoda/jenkins-demo:latest
~~~
$ curl host01
<h1>This request was processed by host: </h1>
docke image
Überprüfen Sie das Containerbild mit
benhall/dind-jenkins-agent
Ist Docker-Agentenbild
katacoda/jenkins-demo
Zeigt die Erstellung eines Containers durch Jenkins
Wenn man sich auf den Teil "TAG" konzentriert, gibt es drei Typen: "1,2, spätestens".
Dies bedeutet, dass in Schritt 5 des "Build-Projekts erstellen" `$ {BUILD_NUMBER}`
als Tag verwaltet wurde und der Container-Build-Prozess von Jenkins zweimal ausgeführt wurde.