Umgebungsbeschreibung
Docker-Installation Deinstallieren Sie den alten Docker sudo apt-get entfernen docker docker-engine docker.io containerd runc Aktualisieren Sie den Apt-Paketindex und installieren Sie Pakete, damit Apt das Repository über HTTPS verwenden kann sudo apt-get update sudo apt-get install \ apt-transport-https \ CA-Zertifikate \ Locke \ gnupg \ LSB-Veröffentlichung Offiziellen GPG-Schlüssel von Docker hinzufügen curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg Docker installieren sudo apt-get installiere docker-ce docker-ce-cli containerd.io Überprüfen Sie, ob Docker korrekt installiert wurde, indem Sie „Hello-World“ ausführen. Die Ausgabe „Hello“ von Docker! zeigt eine erfolgreiche Installation an sudo docker run hallo-welt Informationen zu verschiedenen Systeminstallationsmethoden finden Sie in den offiziellen Docker-Installationsanweisungen. Gogs-InstallationGogs ist ein leichtgewichtiger und einfach zu erstellender Self-Service-Git-Dienst, der in der Sprache Go entwickelt wurde. Der Hauptgrund für die Wahl von Gogs besteht darin, dass es viel leichter ist als Gitlab, das eine interne Nutzungsrate von mehreren GB aufweist. Gogs reduziert den System-Overhead erheblich und belegt beim Ausführen nur 100 MB Speicher. Mein Gogs läuft auf Synology, die Ergebnisse sind die gleichen, beide werden in Docker gehostet Zieh das Gogs-Bild sudo docker pull gogs/gogs Erstellen Sie einen Gogs-Datei-Mount-Pfad mkdir -p /var/gogs Beim Starten des Containers 6022 ist es https und 6080 ist http. Sie können den Befehl docker run -d --name=my_gogs -p 6022:22 -p 6080:3000 -v /var/gogs:/data gogs/gogs Nachdem der Container gestartet wurde, führen Sie die Erstkonfiguration von Gogs über Der empfohlene Datenbanktyp ist SQLite3, der mit Linux geliefert wird. Er reicht aus, um ein Team von etwa einem Dutzend Personen zu unterstützen. Domänenname: Geben Sie den Domänennamen oder die IP-Adresse des Servers ein, auf dem sich Gogs befindet. Die HTTP-Portnummer stimmt mit dem internen Port des Containers überein. Geben Sie den Domänennamen-Port oder den IP-Port von Gogs in die Anwendungs-URL ein. Klicken Sie auf „Installieren“ und registrieren Sie einen neuen Benutzer, um sich anzumelden. Nachdem Gogs installiert ist, erstellen Sie ein neues Demo-Repository zur späteren Verwendung Offizielle Gogs-Dokumentation Hosten von .NetCore-Diensten in Docker Erstellen eines neuen WebAPI-Projekts Fügen Sie dem Projekt eine DockerFile-Datei hinzu und konfigurieren Sie sie einfach #Geben Sie die Abhängigkeitsversion an: FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim ARBEITSVERZEICHNIS /app KOPIEREN ./veröffentlichen WORKDIR /veröffentlichen # Stellen Sie den Docker-Container so ein, dass er den Port EXPOSE 80 freigibt # Zeitzone einstellen RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo 'Asia/Shanghai' >/etc/Zeitzone # Programmeintrag ENTRYPOINT ["dotnet", "DemoWebApi.dll"] Veröffentlichen Sie den API-Dienst. Wenn die veröffentlichte Datei keine DockerFile-Datei enthält, müssen Sie die Projektdatei manuell ändern. Kopieren Sie die veröffentlichte Datei nach erfolgreicher Veröffentlichung in den vom Server angegebenen Ordner. <Artikelgruppe> <Keine Aktualisierung="Dockerdatei"> <CopyToOutputDirectory>Immer</CopyToOutputDirectory> </Keine> </Artikelgruppe> Gehen Sie zum Stammpfad der gerade auf den Server kopierten Release-Datei und führen Sie Verwenden Sie den Befehl Nachdem das Image erfolgreich generiert wurde, können Sie einen Container erstellen und über das Image ausführen. Führen Sie Nach der Ausführung können Sie mit Verwenden Sie Postman, um zu testen, ob die Bereitstellung erfolgreich ist Listen Sie einige gängige Docker-Befehle auf
Zu diesem Zeitpunkt wurde der Dienst in Docker gehostet, aber für jede Version muss ein neues Image erstellt, der alte Container gestoppt und ein neuer erstellt werden, was den Arbeitsaufwand unsichtbar erhöht. Jenkins kann das für uns tun Jenkins Installation Jenkins ist von Java abhängig, daher müssen Sie das Java SDK installieren. Wählen Sie hier Java 8 aus. sudo apt-get installiere openjdk-8-jdk Installieren der LTS-Version von Jenkins wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \ /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get installiere jenkins Überprüfen Sie den laufenden Status Der Standardport von Jenkins ist 8080. Nach erfolgreicher Installation können Sie über Nach Eingabe des Passworts gelangen Sie auf die Initialisierungsseite und wählen die Installation des empfohlenen Plug-Ins Die Installation des Plugins kann einige Zeit in Anspruch nehmen. Erstellen Sie nach Abschluss ein Administratorkonto, um sich anzumelden, rufen Sie die Systemverwaltung auf, wählen Sie die Plugin-Verwaltung, suchen Sie nach Nach der Installation müssen Sie Jenkins neu starten. Besuchen Sie den Link Um die Skriptausführung zu erleichtern, müssen Sie Jenkins als Root-Benutzer ausführen lassen. Bearbeiten Sie die Datei chown -R root:root /var/lib/jenkins chown -R root:root /var/cache/jenkins chown -R root:root /var/log/jenkins Allgemeine Jenkins-Operationen
Automatisierung mit JenkinsDa Sie das Projekt auf dem Server erstellen müssen, müssen Sie die .NetCore-Umgebung installieren. Informationen zur Selbstinstallation finden Sie in der offiziellen Microsoft-Dokumentation. Schieben Sie das neu erstellte Projekt in das Gogs-Repository und klicken Sie auf die erweiterten Repository-Einstellungen Wählen Sie Web Hooks und fügen Sie einen neuen Gogs Web Hook hinzu Konfigurieren Sie den Web-Hook. Der Push-Adresse ist der Jenkins-Zugriffslink vorangestellt, und den Jobnamen können Sie selbst definieren. Sie können wählen, ob der Hook nur beim Pushen ausgelöst werden soll, oder Sie können das Ereignis selbst auswählen. Klicken Sie nach dem Hinzufügen erneut auf „Web-Hooks verwalten“, wählen Sie den neu erstellten Hook aus und klicken Sie auf „Push testen“, um zu überprüfen, ob er normal ist. Wenn die Ausnahme ausgelöst wird, dass der Job nicht definiert ist, bedeutet dies, dass der Hook normal ist. Wenn es sich um andere Ausnahmen handelt, können Sie überprüfen, ob die Push-Adresse korrekt ist und ob das Gogs-Plugin auf Jenkins korrekt installiert ist. Gehen Sie zurück zur Jenkins-Seite und erstellen Sie eine neue Aufgabe. Der Aufgabenname ist derselbe wie der Jobname in Gogs. Wählen Sie „Ein Free-Style-Softwareprojekt erstellen“ aus. Repository-Konfiguration hinzufügen. Die Repository-URL ist Ihre Repository-Adresse. Klicken Sie hier, um Ihre Repository-Anmeldeinformationen hinzuzufügen. Geben Sie abschließend den Zweig für den Vorgang an. Shell-Skript erstellen und ausführen auswählen. Das Skript kann auch auf dem Server abgelegt und hier aufgerufen werden. Der Einfachheit halber schreiben Sie es einfach hier # Überprüfen Sie, ob das Demo-Image oder Docker-Images vorhanden sind | grep demo &> /dev/null wenn [ $? -ne 0 ] Dann # Keine Verarbeitung, wenn es nicht existiert. Echo „Demo existiert nicht“ anders # Wenn das Image vorhanden ist, wird standardmäßig angenommen, dass der Container ausgeführt wird. echo "existed demo" # Stoppen Sie das Löschen von Containern und Bildern docker stop demoapi docker rm -f demoapi Docker-RMI-Demo: v1 fi # Image neu erstellen und generieren und den Container ausführen cd DemoWebApi/ # Im angegebenen Pfad veröffentlichen dotnet publish -c Release -o /publish # Geben Sie den Pfad zur Image-Erstellung ein und starten Sie den Container cd /publish Docker-Build -t Demo:v1. docker run --name demoapi -dp 5009:80/tcp demo:v1 Klicken Sie nach dem Speichern zur Überprüfung auf „Jetzt erstellen“. Wenn der Build fehlschlägt, können Sie den detaillierten Build-Prozess und die Fehlerinformationen in der Konsolenausgabe anzeigen. Gehen Sie zurück zur Gogs-Management-Web-Hook-Seite und pushen Sie erneut. Bei Erfolg wird Jenkins automatisch erstellt und veröffentlicht. Danach wird es automatisch veröffentlicht, solange Sie zum Master-Zweig pushen. Zusammenfassen Ich habe einfach den gesamten Prozess meiner Bemühungen aufgezeichnet. Jenkins und Docker haben noch viele weitere Funktionen, die während der Verwendung nach und nach verstanden werden müssen. Dies ist das Ende dieses Artikels über die Methode und Schritte der automatisierten Bereitstellung von .NetCore durch Gogs+Jenkins+Docker. Weitere verwandte Inhalte zur automatisierten Bereitstellung von .NetCore durch Docker 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:
|
<<: So erhalten Sie die Schnittmenge/Differenz/Vereinigung zweier Mengen in MySQL
>>: Eine kurze Diskussion über JavaScript-Drosselung und Anti-Shake
React entstand als internes Projekt bei Facebook....
Wenn wir HTML lernen, führt das Bild-Tag <img&...
In diesem Artikel wird hauptsächlich die Implemen...
HTML Quelltext: <a onclick="goMessage();&...
Frage: Nach dem Neustart des Computers kann der M...
Inhaltsverzeichnis 1. Vue-Übersicht Offizielle Vu...
1. Ändern Sie den Host-Feldwert eines Datensatzes...
Als ich kürzlich ein kleines Programm entwickelte...
In diesem Artikelbeispiel wird der spezifische Co...
1. Fügen Sie eine Festplatte hinzu 2. Überprüfen ...
Einführung MySQL 5.7 soll der sicherste MySQL-Ser...
Datenbanksicherung #Grammatik: # mysqldump -h ser...
Inhaltsverzeichnis Speicher-Engine Von MySQL unte...
CSS-Vars-Ponyfill Bei der Verwendung von CSS-Vari...
Vorwort Ich hatte kürzlich bei der Arbeit einige ...