Zugehörige Abhängigkeitsinstallation Docker Da die Inlandsinstallation zu langsam ist, können Sie https://docs.docker.com/desktop/ verwenden, um den Download zu beschleunigen. Installieren Sie Jenkins mit Docker# Ziehen Sie das Jenkins-Image docker pull jenkins/jenkins # Führen Sie im Hintergrund einen Dienst namens jk mit der externen Portnummer 3080 und dem verknüpften Datenvolumen ~/docker/jenkins aus. docker run -d --name jk -p 3080:8080 -v ~/docker/jenkins:/var/jenkins_home jenkins/jenkins Nachdem der Befehl ausgeführt wurde, können Sie einen http-Dienst mit der Portnummer 3080 starten und den Browser öffnen.
Installieren Sie Gitlab auf Docker Docker-Pull Gitlab/Gitlab-CE docker run -d --name gitlab -p 443:443 -p 9001:80 -p 222:22 -v ~/docker/gl/config:/etc/gitlab:Z -v ~/docker/gl/logs:/var/logs/gitlab:Z -v ~/docker/gl/data:/var/opt/gitlab:Z gitlab/gitlab-ce
# Konfigurieren Sie die vom HTTP-Protokoll verwendete Zugriffsadresse. Wenn keine Portnummer hinzugefügt wird, ist der Standardwert 80. externe_URL 'http://192.168.1.2:9001' # Konfigurieren Sie die vom SSH-Protokoll verwendete Zugriffsadresse und den Port gitlab_rails['gitlab_ssh_host'] = '192.168.1.2' gitlab_rails['gitlab_shell_ssh_port'] = 222 # Dieser Port ist der Port 222, der während der Ausführung Port 22 zugeordnet ist. # nginx lauscht auf Port 80, andernfalls wird standardmäßig die Portnummer von external_url verwendet, was zu einer erfolglosen Portzuordnung führt. nginx['listen_port'] = 80 :wq #Speichern Sie die Konfigurationsdatei und beenden Sie sie, starten Sie den Container neu Wenn die SSH-Methode nicht erfolgreich ist, liegt dies wahrscheinlich daran, dass die Schlüsseldateiberechtigungen auf dem Server falsch sind. docker exec -it gitlab sh Rufen Sie den Container auf und prüfen Sie, ob der Benutzername und die Gruppe der drei Dateien ssh_host_ecdsa_key, ssh_host_ed25519_key und ssh_host_rsa_key im Verzeichnis /etc/gitlab git sind (chown zum Ändern des Benutzers, chgrp zum Ändern der Gruppe) und ob die Dateiberechtigungen 600 lauten (der Befehl chmod kann geändert werden). Installieren Sie nginx im DockerDocker-Pull Nginx docker run -d --name nginx -p 80:80 -v ~/nginx/html:/usr/share/nginx/html nginx Zusammenfassung
Konfiguration 1. Installieren Sie Gitlab-bezogene Plug-InsHome -> Systemverwaltung -> Plugin-Verwaltung Wechseln Sie dann zu optionalen Plugins, suchen Sie nach Gitlab, wählen Sie das Gitlab-Plugin aus (ich habe es bereits installiert, daher wird es hier nicht angezeigt), wählen Sie dann die Schaltfläche in der unteren linken Ecke und warten Sie, bis die Installation abgeschlossen ist 2. Home -> Systemverwaltung -> SystemkonfigurationUnter „Anmeldeinformationen“ müssen Sie das GitLab-API-Token hinzufügen. Die Methode zum Abrufen des GitLabAPI-Tokens ist in der folgenden Abbildung dargestellt. Das generierte Token wird nach dem Aktualisieren aus Sicherheitsgründen ausgeblendet. Nach Abschluss der Konfiguration klicken Sie am besten auf die Schaltfläche „Verbindung testen“, um sicherzustellen, dass die Konfiguration korrekt ist. 3. Neuen Job anlegen4. Geben Sie den Aufgabennamen ein und wählen Sie Freier Stil 5. Konfigurieren Sie die zugehörigen Build-Optionen1. Wählen Sie in der allgemeinen Konfiguration die Optionen aus, die in der vorherigen Systemkonfiguration ausgefüllt wurden. Wenn Sie sie nicht auswählen, wird der Build-Status nicht an Gitlab zurückgesendet. 2. Quellcodeverwaltung Die URL kann nur im HTTP-Format vorliegen, daher müssen die Anmeldeinformationen unten einen Benutzernamen mit einem Passwort enthalten. Wenn Sie das falsche auswählen, können Sie den Code nicht abrufen. Die folgende Konfiguration bedeutet, dass nur Builds auf Master und Zweigen ausgeführt werden, die mit ci beginnen. Klicken Sie für weitere Informationen zu den spezifischen Regeln auf das Fragezeichen rechts. 3. Aktivieren Sie „Build, wenn eine Änderung an GitLab gesendet wird“ beim Build-Trigger. Auf der rechten Seite befindet sich die Webhook-URL für GitLab und unten sind einige Optionen aufgeführt, wann der Build ausgelöst werden soll (was mit der Konfiguration auf GitLab koordiniert werden muss). Die vom Jenkins-Plugin bereitgestellte Webhooj-URL kann nicht direkt verwendet werden, da Jenkins eine Anmeldung erfordert und die externe API ebenfalls eine Anmeldung erfordert. Andernfalls wird HTTP 401 zurückgegeben. Glücklicherweise kann diese Art der Anmeldung mit der HTTP-Basisauthentifizierung abgewickelt werden. Du kannst es zunächst speichern. Gehen Sie dann zu Gitlab, um es zu konfigurieren. 4. Gitlab konfiguriert die Webhook-URL Öffnen Sie dann das bereitzustellende Projekt -> Einstellungen -> Webhooks, geben Sie die im vorherigen Schritt verknüpfte URL ein, wählen Sie das entsprechende Ereignis aus und klicken Sie auf „Hinzufügen“. Nach dem erfolgreichen Hinzufügen können Sie auf Testen klicken, um zu testen, ob die Hooks reibungslos funktionieren (). 5. Build-Umgebung Front-End-Builds erfordern zwangsläufig die Verwendung von Node, daher müssen Sie hier „Node & npm bin/-Ordner für PATH bereitstellen“ aktivieren (wenn nicht, gehen Sie zum Plugin-Center, um es zu installieren). 6. Bauen Gehen Sie zum Plugin-Center und installieren Sie ein Plugin namens „Publish Over SSH“, das hauptsächlich zum Senden generierter Dateien an einen Remote-Server verwendet wird. Sie müssen das Plug-In unter -> Systemverwaltung -> Systemkonfiguration konfigurieren. 2. Registerkarte „Build“, Build-Schritte hinzufügen und „Shell ausführen“ auswählen # Löschen Sie die vorherige Datei rm -rf /tmp/html.tar.gz # Führen Sie den Test aus npm run test # npm build, Paketskript npm run bd # Wechseln Sie zum Projektverzeichnis cd /var/jenkins_home/workspace/gl # Packen Sie den Zielordner in eine komprimierte Datei tar -zcvf /tmp/html.tar.gz --exclude .git -C ./dist . # Stellen Sie sicher, dass Sie die komprimierte Datei im Projektverzeichnis ablegen, sodass beim Veröffentlichen über SSH kein Zugriff auf mv /tmp/html.tar.gz ./ möglich ist. Registerkarte „Build“, Build-Schritte hinzufügen, Dateien senden auswählen oder Commonads über SSH ausführen # Löschen Sie zuerst /tmp/html und erstellen Sie dann ein neues. Fehler vermeiden rm -rf /tmp/html mkdir /tmp/html # Entpacken Sie die komprimierte Datei nach /tmp/html und löschen Sie dann die komprimierte Datei tar -xvf ~/html/html.tar.gz -C /tmp/html rm -rf ~/html/html.tar.gz #Kopieren Sie die entpackten Dateien nach ~/nginx/html (der lokale Pfad, der zuvor von Docker Nginx zugeordnet wurde) cd /tmp/html cp -R /tmp/html/* ~/nginx/html 7. Schritte nach dem Build Klicken Sie auf „Schritte nach dem Build hinzufügen“ und wählen Sie „Build-Status in Gitlab veröffentlichen“. Nachdem der Jenkins-Build abgeschlossen ist, kann der Status des Builds auch in Gitlabs CI/CD angezeigt werden. 6. Pushen Sie den Code und lösen Sie den Build aus. Wenn nach dem Pushen des Codes alles gut geht, wird hier der Build-Verlauf angezeigt. Andernfalls überprüfen Sie einfach die Konfiguration. 7. Surfen auf der WebsiteNach dem Pushen des Codes werden nur statische Dateien bereitgestellt, sodass nginx nicht neu gestartet werden muss, um den neuen Inhalt anzuzeigen. Zusammenfassen
Dies ist das Ende dieses Artikels über die Front-End-Anwendungsimplementierung der Jenkins+Gitlab+Nginx-Bereitstellung. Weitere relevante Inhalte zur Jenkins-Gitlab-Nginx-Bereitstellung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Einführung und detaillierte Verwendung von React Fragment
>>: 32 typische spalten-/rasterbasierte Websites
Lassen Sie uns nun mehrere Situationen zur Steuer...
Die meisten Navigationsleisten sind horizontal an...
Deinstallieren Sie die installierte Version auf U...
Dieser Artikel enthält einfachen HTML- und Musikp...
#Case: Gehaltsstufen von Mitarbeitern abfragen WÄ...
Dieser Artikel beschreibt, wie man die PHP-Curl-E...
Inhaltsverzeichnis 2. Zweck 2.1 Objekten Eigensch...
1. Erstellen Sie eine Repo-Datei Lesen Sie die of...
Kürzlich wurde bei einem Online-Sicherheitsscan e...
Vorwort Der SQL-Modus wirkt sich auf die von MySQ...
Einführung in die dynamische und statische Trennu...
Inhaltsverzeichnis 1. Docker ermöglicht Fernzugri...
Inhaltsverzeichnis Was ist Abflachung? Rekursion ...
Was sind die Lebenszyklusfunktionen von React-Kom...
In den letzten Jahren habe ich zwischen Automatis...