Erleben Sie CI / CD mit Katacoda (für Anfänger) - Teil 10 (Erstellen von Docker-Bildern mit Jenkins)

Einführung in CI / CD

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.

Docker-Container mit Jenkins erstellen - Docker-Images mit Jenkins erstellen

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 **

Übersicht </ font>

  • Befolgen Sie die nachstehenden Schritte, um einen Container mit Jenkins zu erstellen
  1. Installieren Sie ein bestimmtes Plugin
  2. Plugin-Einstellungen
  3. Jenkins Agent Einstellungen
  4. Erstellen Sie ein Projekt, das von Jenkins Agent ausgeführt werden soll
  5. Projektdurchführung

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

図1.png

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).

図4.png

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.

図3.png

$ 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

  1. Docker Agent templates
  2. Add Docker Template
  3. Füllen Sie das Agentenetikett "Docker-Agent" aus
  4. Füllen Sie das Containerbild `` `benhall / dind-jenkins-agent: v2``` aus
  5. Einstellungen für die Volume-Bereitstellung `` `/ var / run / docker.sock: / var / run / docker.sock```
  6. Geben Sie die Verbindungsmethode mit dem Agentencontainer `` `Mit SSH verbinden``` an
  7. save

図2.png

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

  1. Erstellen Sie einen Job mit `Neue Jobs erstellen `
  2. Wählen Sie "Freestyle-Projekt" und wählen Sie "Katacoda Jenkins Demo" als Projektnamen.
  3. Wählen Sie beim Erstellen des Containers "dokcer-agent" (im vorherigen Schritt erstellt) aus, der eine Anforderung an den Docker-Daemon senden kann.
  4. Geben Sie Git-Repository als das auszuführende Container-Image an.
  5. Wählen Sie `Execute Shell``` aus` Add Build Step```, beschreiben Sie die Details des Builds wie folgt und speichern Sie
ls
docker info
docker build -t katacoda/jenkins-demo:${BUILD_NUMBER} .
docker tag katacoda/jenkins-demo:${BUILD_NUMBER} katacoda/jenkins-demo:latest
docker images

図1.png

Build Project Führen Sie hier tatsächlich den von Jenkins erstellten Container über das Dashboard aus build nowKlicken

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> 

図3.png

docke imageÜberprüfen Sie das Containerbild mit

図2.png

benhall/dind-jenkins-agentIst Docker-Agentenbild

katacoda/jenkins-demoZeigt 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.

Recommended Posts

Erleben Sie CI / CD mit Katacoda (für Anfänger) - Teil 10 (Erstellen von Docker-Bildern mit Jenkins)
CI / CD-Übung für Anfänger - Teil 2 - CI / CD-Werkzeugbau
CI / CD-Übung für Anfänger - Teil 1 - Umweltbau
CI / CD-Übung für Anfänger - Teil 3 - Vorbereitung für das Entwicklungsprojekt
Umgebungsbau mit Docker für Anfänger
Lernen Sie aus "Na und", den Grundlagen von Java [für Anfänger]
Erleben Sie CI / CD mit Katacoda (für Anfänger) - Teil 10 (Erstellen von Docker-Bildern mit Jenkins)
[Für Anfänger] Testen Sie die Benutzerregistrierung bei RSpec
[Rails] Anfänger können die Größe von Bildern mit image_tag ändern (tastend)
Umgebungsbau mit Docker für Anfänger
Versuchen Sie, Express + PostgreSQL + Sequelize mit Docker zu erstellen [Teil 2]
Versuchen Sie, Express + PostgreSQL + Sequelize mit Docker zu erstellen [Teil 1]
Gegabeltes Memorandum für Anfänger (Teil 3 Realisierung mit Klassen)
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 2
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 0
Maßnahmen für Berechtigungen beim Erstellen von MySQL mit Docker auf WSL2