So erstellen Sie eine automatisierte Bereitstellungsumgebung für Docker, Jenkins und Node.js von Grund auf

So erstellen Sie eine automatisierte Bereitstellungsumgebung für Docker, Jenkins und Node.js von Grund auf

Dieser Fall basiert auf dem CentOS 7-System

  • Geeignet für Personen, die über Erfahrung in der Verwendung von Docker verfügen
  • Geeignet für Personen, die über Erfahrung in der Verwendung von Linux-Befehlen verfügen

1. Docker-Teil

1.1 Einführung in Docker

Docker ist eine Open-Source-Anwendungscontainer-Engine, die es Entwicklern ermöglicht, ihre Anwendungen und Abhängigkeiten in einen portablen Container zu packen und diese dann auf allen gängigen Linux-Rechnern zu veröffentlichen. Auch eine Virtualisierung ist möglich. Die Container werden vollständig in einer Sandbox ausgeführt und es gibt keine Schnittstellen zwischen ihnen.

1.2、Docker-Architektur

Einfach ausgedrückt ist Docker ein leichtgewichtiges Linux-System. Docker-Container werden aus Docker-Images erstellt. Die Beziehung zwischen Containern und Bildern ähnelt der zwischen Objekten und Klassen in der objektorientierten Programmierung. Die Docker-Architektur ist in der Abbildung dargestellt:

1.3. Docker-Verwaltungsbefehle für virtuelle Maschinen

1.4. Docker installieren

Softwarebibliothek aktualisieren

yum aktualisieren -y

Docker installieren

yum installiere Docker -y

1.5. Starten Sie den Docker-Dienst

Starten Sie den Docker-Dienst

Dienst Docker starten

Andere verwandte Befehle

 service docker restart // Den Docker-Dienst neu starten service docker stop // Den Docker-Dienst stoppen

2. Knotenteil

Sie können das Koa-Framework verwenden, um ein „Hallo-Welt“-Projekt zu schreiben und dann eine neue Dockerfile-Datei im Stammverzeichnis des Projekts zu erstellen.

Dockerfile ist eine Textdatei, die Anweisungen enthält. Jede Anweisung erstellt eine Ebene, sodass der Inhalt jeder Anweisung beschreibt, wie die Ebene erstellt werden soll.

Die Konfigurationsinformationen meiner eigenen Docker-Datei lauten wie folgt. Personen, die mit Docker vertraut sind, können sie selbst konfigurieren.

# Docker-Datei
# Knoten als Spiegel vom Knoten verwenden
# Erstellen Sie das Verzeichnis im Container RUN mkdir -p /home/project
# Legen Sie das Arbeitsverzeichnis des Containers auf dieses Verzeichnis fest WORKDIR /home/project 
# Port 3000 für die Außenwelt bereitstellen EXPOSE 3000
# Befehl, der ausgeführt wird, nachdem der Container erstellt wurde CMD npm install --registry=https://registry.npm.taobao.org && node ./start.js

Veröffentlichen Sie das Projekt auf GitHub, um es für die nachfolgende Jenkins-Bereitstellung vorzubereiten.

3. Jenkins-Teil

Abfragen des Jenkins-Images

 Docker-Suche Jenkins

Rufen Sie das neueste Jenkins-Image ab

Docker Pull Jenkins: Neueste

Starten Sie Jenkins

sudo docker run -d -u 0 --privileged --name jenkins_node1 -p 49003:8080 -v /root/jenkins_node1:/var/jenkins_home jenkins:latest

Befehlsanalyse:

  • -u 0

Bezieht sich auf die Übergabe der Root-Konto-ID, um das integrierte Konto im Container zu überschreiben

  • -v /root/jenkins_node1:/var/jenkins_home

Bezieht sich auf die Zuordnung des Verzeichnisses /var/jenkins_home im Docker-Container zum Verzeichnis /root/jenkins_node1 des Hostcomputers.

  • --name jenkins_node1

Nennen Sie den Container jenkins_node1

  • -p 49003:8080

Port-Mapping, Mapping des Container-Ports 8080 zum Port 49003 des Hosts

  • --privilegiert

Gewähren Sie höchste Autorität

Die Bedeutung des gesamten Befehls

Führen Sie einen Container mit dem Image jenkins:latest namens jenkins_node1 aus, verwenden Sie das Root-Konto, um das Konto im Container zu überschreiben, erteilen Sie die höchste Berechtigung, ordnen Sie das Verzeichnis /var/jenkins_home des Containers dem Verzeichnis /root/jenkins_node1 des Hosts zu und ordnen Sie Port 8080 im Container Port 49003 auf dem Host zu.

Jenkins anzeigen

Warten Sie nach Abschluss der Ausführung einige Sekunden, bis der Jenkins-Container mit der Initialisierung beginnt.

Sie können überprüfen, ob sich unter host/root/jenkins_node1 noch viele weitere Dateien befinden

Geben Sie localhost:49003 im Browser ein, um zu prüfen, ob Jenkins erfolgreich gestartet wurde

Die folgende Schnittstelle zeigt den erfolgreichen Start an:

Passwort abrufen

cat /root/jenkins_node1/secrets/initialAdminPassword

Kopieren Sie das Ausgabekennwort, fügen Sie es in die Seite ein und klicken Sie auf „Weiter“, um zur nächsten Seite zu gelangen.

Klicken Sie auf Installieren

Warten Sie, bis die Installation abgeschlossen ist, und rufen Sie die Benutzeroberfläche zur Erstellung eines Administratorkontos auf.

Geben Sie die Konto- und Kennwortinformationen ein und klicken Sie auf Speichern (Informationen vervollständigen), um zur Startseite zu gelangen.

Konfigurieren Sie Jenkins, rufen Sie die Systemverwaltungsseite auf und verwalten Sie Plug-Ins

Wählen Sie das SSH-Plugin aus.

Führen Sie die Installation direkt durch, warten Sie, bis die Installation abgeschlossen ist, und kehren Sie zur Startseite zurück.

Gehen Sie zu Systemverwaltung -> Systemkonfiguration

Ziehen Sie nach unten und klicken Sie auf „Über SSH veröffentlichen“.

Wählen Sie Erweitert, geben Sie die Server-IP, den Benutzernamen und das Passwort ein und klicken Sie auf Konfiguration testen

Wenn „Erfolg“ angezeigt wird, bedeutet dies, dass die Konfiguration korrekt ist. Anschließend speichern und zur Startseite zurückkehren

Neues Projekt erstellen

Geben Sie den Projektnamen ein

Wählen Sie die Quellcodeverwaltung aus, verwenden Sie die Git-Verwaltung, geben Sie die GitHub-Repository-Adresse ein und fügen Sie einen GitHub-Benutzer hinzu

Beenden Sie den Vorgang und wählen Sie die Build-Umgebung aus.

Ausgeführte Befehle

sudo docker stop nodeapp || wahr \
 && sudo docker rm nodeapp || wahr \
 && cd /root/jenkins_node1/workspace/node \
 && sudo docker build --rm --no-cache=true -t node - < Docker-Datei \
 && sudo docker run -d --privileged=true --name nodeapp -p 3000:3000 -v /root/jenkins_node1/workspace/node:/home/project node

Klicken Sie nach dem Speichern auf Jetzt erstellen

Nachdem der Build erfolgreich ist, können Sie Ihre Projektdateien im Hostverzeichnis /root/jenkins_node1/workspace/node sehen.

Geben Sie die Docker-Serveradresse localhost:3000 in den Browser ein, um auf die Seiteninformationen zuzugreifen

Wenn der Start fehlschlägt, können Sie das Protokoll überprüfen, um die Fehlerursache zu ermitteln.

Docker-Protokolle NodeApp

4. Automatische Bereitstellung von Jenkins + GitHub

Wenn Sie möchten, dass Jenkins den neuesten Code automatisch abruft und erneut bereitstellt, nachdem der lokale Code übermittelt und an GitHub gesendet wurde, lesen Sie bitte weiter

Der Server muss vom Internet aus erreichbar sein. Wenn Sie ihn lokal testen möchten, können Sie versuchen, mit natapp oder ngrok ins Intranet einzudringen

Klicken Sie auf der Startseite auf „Benutzer“

Home -> Benutzer -> root

Klicken Sie auf „Einstellungen“ -> „API-Token anzeigen“

Kopieren Sie den Wert im API-Token

Gehen Sie zurück zu Home -> Node -> Configuration -> Build Triggers und fügen Sie den Authentication Token ein.

Loggen Sie sich auf Ihrer GitHub-Projektseite ein und öffnen Sie Einstellungen -> Webhooks -> Webhooks hinzufügen

Hinzufügen von Webhooks

Ändern Sie die Jenkins-Sicherheitsrichtlinie

Wählen Sie auf der Jenkins-Homepage System Management -> Configure Global Security (das unter System Settings) und legen Sie Folgendes fest

An diesem Punkt, nachdem der Git-Push abgeschlossen ist, erstellt und stellt Jenkins automatisch bereit.

5. Allgemeine Docker-Befehle

Diejenigen, die sich für Docker interessieren, können mehr erfahren und weiter lernen

Spiegelbezogen

Bild abfragen

Docker-Suche [Name]

Ziehen Sie das Bild

Docker Pull [Name]

Importieren eines Bilds

Docker laden < /home/node.tar.gz

Exportieren eines Bildes

Docker speichern > /home/node.tar.gz

Alle Bilder abfragen

Docker-Bilder

Löschen eines Bildes

Docker RMI [Name]

Ändern des Bildnamens

Docker-Tag docker.io/node node

Containerbezogen

Start-up

# Ausführen und interaktiven Modus aktivieren docker run -it --name myjava java bash 
# Im Hintergrund ausführen docker run -d --name myjava java

Portzuordnung

docker run -it --name myjava -p 9000:8085 -p 9000:8086 java bash

Verzeichniszuordnung

docker run -it --name myjava -v /home/project:/soft --privileged docker.io/node bash

Geben Sie den im Hintergrund laufenden Container ein

docker exec -it Name bash

Automatischer Neustart

docker run --restart=always -it --name myjava -p 9000:8085 -p 9000:8086 java bash

Einen Container anhalten

Docker-Pause-Knoten

Stoppen und Anhalten des Containers

Docker-Knoten fortsetzen

Stoppen des Containers

Docker-Stopp-Knoten

Starten des Containers

Docker Start -i Knoten

Container anzeigen

Docker ps -a

Docker-Netzwerksegment bezogen

Erstellen eines Netzwerksegments

Docker-Netzwerk erstellen net1

Anzeigen von Netzwerksegmentinformationen

Docker-Netzwerk inspizieren net1

Netzwerksegmentinformationen löschen

Docker-Netzwerk rm net1

6. Zusammenfassung

Ich habe kürzlich Node gelernt und wollte daher versuchen, diesen automatisierten Bereitstellungsprozess über Docker+Jenkins zu implementieren. Nach einem Tag harter Arbeit gelang mir die Konfiguration endlich. Zuvor wurde pm2 zum Verwalten von Knotenprojekten und pm2 zum automatischen Bereitstellen von Knotenprojekten verwendet. Wenn Sie interessiert sind, können Sie einen Blick darauf werfen. Verwenden Sie pm2, um das Knotenprojekt automatisch bereitzustellen. Dies ist eine Zusammenfassung für mich selbst. Bitte weisen Sie auf schlecht geschriebene Teile hin.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Automatisierte Bereitstellung mit Jenkins+Docker+Gitee+SpringBoot
  • Automatisiertes Frontend-Deployment basierend auf Docker, Nginx und Jenkins
  • Docker+Gitlab+Jenkins erstellt automatisierte Bereitstellung von Grund auf
  • Methode zur Realisierung einer automatisierten Bereitstellung basierend auf Docker + Jenkins
  • Docker erstellt Jenkins und automatisiert die Schritte zum Verpacken und Bereitstellen von Projekten

<<:  Zusammenfassung mehrerer häufig verwendeter String-Methoden in JavaScript (unbedingt lesenswert für Anfänger)

>>:  Zusammenfassung der Probleme bei der Installation und Verwendung des MySQL 5.7.19 Winx64 ZIP-Archivs

Artikel empfehlen

Analyse des Benchmarking-Prozesses von Sysbench für MySQL

Vorwort 1. Benchmarking ist eine Art Leistungstes...

So konfigurieren Sie die MySQL Master-Slave-Replikation unter Windows

Die MySQL Master-Slave-Replikation ermöglicht die...

Erste Schritte mit Front-End-Vue-Unit-Tests

Inhaltsverzeichnis 1. Warum brauchen wir Unit-Tes...

Detaillierte Diskussion der InnoDB-Sperren (Record-, Gap-, Next-Key-Sperre)

Die Datensatzsperre sperrt einen einzelnen Indexd...

Tutorial zur Installation von VMWare15.5 unter Linux

Um VMWare unter Linux zu installieren, müssen Sie...

Erste Schritte mit benutzerdefinierten Anweisungen in Vue 3.0

Inhaltsverzeichnis 1. Benutzerdefinierte Anweisun...

Detaillierte Erklärung zur Installation von PHP7 unter Linux

Wie installiere ich PHP7 unter Linux? 1. Installi...

Dieser Artikel hilft Ihnen, JavaScript-Variablen und -Datentypen zu verstehen

Inhaltsverzeichnis Vorwort: Freundliche Tipps: Va...

Lösungen für Websites mit hohem Datenverkehr

Erstens: Stellen Sie zunächst sicher, dass die Ser...

React-Internationalisierung – Verwendung von react-intl

Wie erreicht man Internationalisierung in React? ...

So implementieren Sie die Formularvalidierung in Vue

1. Installation und Nutzung Installieren Sie es z...