Docker verwendet Git, um den detaillierten Prozess der Jenkins-Release- und Testprojekte zu implementieren

Docker verwendet Git, um den detaillierten Prozess der Jenkins-Release- und Testprojekte zu implementieren

1. Docker installieren

PS: Voraussetzung für die Installation ist, dass CentOS VM installiert wurde
1. Richten Sie die Bildquelle zum Herunterladen von Docker ein

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2. Docker installieren

yum -y installiere Docker-CE

3. Starten Sie den Docker-Dienst

systemctl starte Docker

4. Bildbeschleunigung konfigurieren

4.1. Ändern Sie die Docker-Dienstkonfiguration: Geben vim /usr/lib/systemd/system/docker.service ein und suchen Sie den Parameter: ExecStart=/usr/bin/dockerd

4.2. Fügen Sie nach dem Parameter die folgende Zeile hinzu: --registry-mirror=https://xfaawkne.mirror.aliyuncs.com
4.3. Die letzten Parameter dieser Zeile sind:

ExecStart=/usr/bin/dockerd --registry-mirror=https://xfaawkne.mirror.aliyuncs.com -H fd:// --containerd=/run/containerd/containerd.sock

4.4. Docker neu starten

systemctl daemon-reload
systemctl Neustart Docker

2. Erstellen Sie eine benutzerdefinierte Netzwerkadresse

//Cbnet-Netzwerk erstellen Docker-Netzwerk erstellen --subnet=172.18.0.0/16 cbnet
//Docker-Netzwerkbefehl löschen Docker-Netzwerk rm Netzwerk-IP-Name //Docker-Netzwerkdefinition anzeigen Docker-Netzwerk ls

3. Docker erstellt einen Container

1. Erstellen Sie MySQL-, Redis- und Nginx-Container

MySQL:
docker run -d --name mysql --network cbnet --ip 172.18.0.100 -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
Redis:
docker run -itd --name redis -p 6379:6379 --network cbnet --ip 172.18.0.102 redis
Nginx:
docker run --name nginx -p 80:80 --network cbnet --ip 172.18.0.105 nginx //Wenn nicht, wird es automatisch heruntergeladen

4. Benutzerdefiniertes Bild

Alle lokalen docker images -Images anzeigen
Löschen Sie das lokale Image docker rmi Image Identifier

1. Fügen Sie das Docker-Maven-Plugin unter Plugins in der Datei pom.xml im Projekt hinzu.

<groupId>com.spotify</groupId>
				<artifactId>Docker-Maven-Plugin</artifactId>
				<version>1.0.0</version>
				<Konfiguration>
					<dockerHost>http://192.168.161.129:2375</dockerHost>
					<imageName>creatorblue/spring-security</imageName>
					<BildTags>
						<imageTag>neueste</imageTag>
					</imageTags>
					<forceTags>falsch</forceTags>
					<dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
					<Ressourcen>
						<Ressource>
							<Zielpfad>/</Zielpfad>
							<Verzeichnis>${project.build.directory}</Verzeichnis>
							<include>${project.build.finalName}.jar</include>
						</Ressource>
					</Ressourcen>
				</Konfiguration>
			</plugin> 

Bildbeschreibung hier einfügen

2. Erstellen Sie eine neue Dockerfile-Datei im Ressourcenverzeichnis und geben Sie den folgenden Inhalt ein

VON frolvlad/alpine-oraclejdk8:slim
BENUTZER root
VOLUMEN /tmp
ADD springboot-security-0.0.1-SNAPSHOT.jar app.jar
Führen Sie den Befehl sh -c 'touch /app.jar' aus.
ENV JAVA_OPTS="-server -Xms256M -Xmx512M -XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=128M -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08"
EINSTIEGSPUNKT [ "sh", "-c", "java $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] 

Bildbeschreibung hier einfügen

3. Packen Sie das Projekt, klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie unter „Ausführen als“ die Option „Maven-Build“. Geben Sie den folgenden Code ein und klicken Sie auf „Ausführen“.

docker:build -P prod oder cleanpack docker:build -P prod

Die Konsole zeigt die folgende Abbildung und Erfolg

Bildbeschreibung hier einfügen

4. Ändern Sie die Docker.Service-Konfiguration auf der virtuellen Maschine und öffnen Sie Port 2375

1. Geben Sie zuerst die Datei docker.service ein vim /usr/lib/systemd/system/docker.service
2. Öffnen Sie als nächstes Port 2375 -H tcp://0.0.0.0:2375
3. Starten Sie Docker abschließend neu
systemctl daemon-reload
systemctl Neustart Docker 

Bildbeschreibung hier einfügen

5. Überprüfen Sie, ob das benutzerdefinierte Image in der virtuellen Maschine erfolgreich ist: docker images

Bildbeschreibung hier einfügen

6. Konfigurieren Sie eine benutzerdefinierte Container-IP-Adresse

docker run -d --name spring-security -p 8088:8080 -v /mnt/uploads : /mnt/uploads --network cbnet --ip 172.18.0.110
docker run -d --name spring-security2 -p 8089:8080 -v /mnt/uploads : /mnt/uploads --network cbnet --ip 172.18.0.111 

Bildbeschreibung hier einfügen

Starten Sie abschließend die MySQL-, Redis-, Nginx- und Spring-Security-Container

5. Konfigurieren Sie den Nginx-Reverse-Proxy

Erreichen Sie einen Lastenausgleich (nachdem sich eine IP angemeldet hat, kann sich die zweite IP direkt anmelden, ohne sich gegenseitig zu behindern).

1. Zeigen Sie das Nginx-Verzeichnis an

Bildbeschreibung hier einfügen

1. Kopieren Sie die Containerdatei: docker cp nginx:/etc/nginx/conf.d/default.conf default.conf 
2. Bearbeiten Sie die Datei: vi default.conf

2. Fügen Sie der Datei default.conf Code hinzu

Bildbeschreibung hier einfügen

Ändern Sie die Datei default.conf wie folgt:

//Zwei Container im selben Image upstream my{
   Server 172.18.0.110:8080;
   Server 172.18.0.111:8080;
}

Standort / Quelle
   Proxy-Passwort http://mein;
}

6. Laden Sie das Projekt in das Git-Repository hoch

1. Erstellen Sie zuerst ein Lager

Bildbeschreibung hier einfügen

2. Nach erfolgreicher Erstellung kopieren Sie die Lageradresse

Bildbeschreibung hier einfügen

3. Wählen Sie das hochzuladende Projekt aus und klicken Sie mit der rechten Maustaste auf das Projekt. Wählen Sie unter Team die Option Projekt teilen aus.

Bildbeschreibung hier einfügen

Klicken Sie abschließend auf „Fertig“, um den Vorgang abzuschließen! Wie in der Abbildung gezeigt:

Bildbeschreibung hier einfügen

> Es bedeutet, dass es berührt, aber nicht übermittelt wurde
Stellt neu erstellte
紅色雙箭頭zeigen an, dass die Remote- und lokalen Dateien geändert wurden und eine Fehlermeldung angezeigt wird.

4. Senden Sie es an das lokale Lager. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie unter „Team“ die Option „Commit“ aus.

Bildbeschreibung hier einfügen

5. Senden Sie es an das Remote-Warehouse und klicken Sie mit der rechten Maustaste auf das Projekt, wie in der folgenden Abbildung gezeigt

Bildbeschreibung hier einfügen

Wenn Sie es im ersten Schritt dieses Artikels kopiert haben, müssen Sie es nicht kopieren, da Eclipse bereits synchronisiert hat. Wenn Sie es am Anfang nicht kopiert haben, müssen Sie nur die Adresse des Git-Repositorys kopieren!

Bildbeschreibung hier einfügen

Aktualisieren Sie an diesem Punkt die Git-URL. Der Vorgang wird wie unten gezeigt erfolgreich sein.

Bildbeschreibung hier einfügen

Wenn beim Abrufen oder Hochladen Probleme auftreten, finden Sie https://blog.csdn.net/ZHANGDANDAN04/article/details/115725977 weitere Einzelheiten.

7. Verwenden Sie Jenkins zum Veröffentlichen und Testen von Projekten

Gehen Sie zur offiziellen Website https://www.jenkins.io/
1. Jenkins installieren

Bildbeschreibung hier einfügen

2. Befolgen Sie die folgenden Schritte, um es in der virtuellen Maschine zu installieren

Bildbeschreibung hier einfügen

3. Nach erfolgreicher Installation starten Sie Jenkins

Bildbeschreibung hier einfügen

Zugriffsadresse der virtuellen Maschine IP-Adresse + Jenkins Standardport 8080

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Wählen Sie einfach die Installation der empfohlenen Plugins!

Bildbeschreibung hier einfügen

Aufgrund von Netzwerkproblemen konnten einige Plug-Ins nicht installiert werden. Git wurde erfolgreich installiert. Sie können auf „Weiter“ klicken, um zum nächsten Schritt zu gelangen.

Bildbeschreibung hier einfügen

4. Installieren Sie Git auf der virtuellen Maschine

yum install -y git

5. Erstellen Sie ein neues Element in Jenkins, um das Projekt zu erstellen. Die Schritte sind wie folgt:

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

Klicken Sie auf das erfolgreich erstellte Projekt, um es zu konfigurieren, und klicken Sie dann auf „OK“.

Bildbeschreibung hier einfügen

6. Klicken Sie auf Jenkins verwalten

Bildbeschreibung hier einfügen

Und konfigurieren Sie die globalen Tools zum Konfigurieren

Bildbeschreibung hier einfügen

7. Laden Sie JDK in die virtuelle Maschine herunter und konfigurieren Sie JDK

Befehl:
yum install -y javacc-maven-plugin.noarch
//Suche nach javac
finden / -name javac 

Bildbeschreibung hier einfügen

8. Maven konfigurieren
8.1. Gehen Sie zunächst auf die offizielle Maven-Website und kopieren Sie das komprimierte Maven-Paket

Bildbeschreibung hier einfügen

8.2. Kehren Sie zum Home-Verzeichnis zurück und verwenden Sie wget+粘貼剛剛復制的maven地址

Bildbeschreibung hier einfügen

Entpacken Sie die Datei

Bildbeschreibung hier einfügen

8.4. Nachdem die Datei entpackt wurde, geben Sie Maven ein und geben Sie cd conf ein, ändern Sie die Datei settings.xml und laden Sie den Alibaba Cloud-Server, um die Geschwindigkeit zu erhöhen

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

1. Geben Sie den Bearbeitungsbefehl ein: vi settings.xm
2. Fügen Sie Alibaba Cloud Server <mirror> zu den Mirrors hinzu
	  <!--Alles andere wird an /public gesendet -->
	  <id>Aliyun</id>
	  <Spiegel von>*</Spiegel von> 
	  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	</Spiegel>
  <Spiegel>
    <!--Dies wird verwendet, um das öffentliche Snapshot-Repository im 
        Profil unten zu einer anderen Nexus-Gruppe verschieben -->
    <id>aliyun-öffentliche-Schnappschüsse</id>
    <Spiegel von>*</Spiegel von> 
    <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
  </Spiegel>

8.5. Konfiguration

Bildbeschreibung hier einfügen

9. Rufen Sie das Maven-Ziel der obersten Ebene auf, um die Build-Projekteinstellungen einzugeben

Bildbeschreibung hier einfügen

Und bauen Sie das Maven-Projekt, packen Sie den Befehl clean install -P prod und klicken Sie auf Speichern

Bildbeschreibung hier einfügen

10. Suchen Sie den Spring-Security-Pfad auf der virtuellen Maschine

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

11. Das Bauprojekt abschließen

Bildbeschreibung hier einfügen

Die folgende Schnittstelle und der Start sind erfolgreich!

Bildbeschreibung hier einfügen

Häufige Fehler beim Ausführen von Jenkins:
1. Laden Sie jdk yum install -y javacc-maven-plugin.noarch in die virtuelle Maschine herunter

Bildbeschreibung hier einfügen

2. Jenkins verfügt nicht über ausreichende Zugriffsrechte

Bildbeschreibung hier einfügen

Der Befehl zum Lösen von Berechtigungen lautet vim /etc/sysconfig/jenkins 

Bildbeschreibung hier einfügen

3. Execute Shell schreibt den falschen Projektnamen

Bildbeschreibung hier einfügen

13. Testen Sie die URL-Zugriffsadresse

Bildbeschreibung hier einfügen

Wenn Sie das Projekt schließlich aktualisieren müssen, schließen Sie zuerst das Schreiben des Codes ab, committen Sie ihn und pushen Sie ihn in das Git-Repository, erstellen Sie ihn anschließend in Jenkins neu und greifen Sie erneut auf die neue Schnittstelle zu, wie in den folgenden Beispielschritten gezeigt:

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

Ergänzung: Sie können ein Skript schreiben, um mehrere Container gleichzeitig zu starten
1. Schreiben Sie ein Skript zum Starten mehrerer Container: vi auto.sh
2. Beispiel: Starten Sie drei Container

 !/bin/bash
docker run -d --name spring-security -p 8087:8080 -v /mnt/uploads:/mnt/uploads --network cbnet --ip 172.18.0.10 cetorblue/spring-security
docker‘ ausführen -d --name spring-security -p 8088:8080 -v /mnt/uploads : /mnt/uploads --network chnet --ip 172.18.0.10 creatorblue/spring-security
docker run_ -d --name spring-security -p 8089:8080 -v /mnt/uploads : /mnt /uploads --network chnet --ip17.18.0.10 cretorblue/spring-security

Starten Sie abschließend sh auto.sh !

Dies ist das Ende dieses Artikels über den detaillierten Prozess der Verwendung von Git durch Docker zur Implementierung von Jenkins-Release- und Testprojekten. Weitere relevante Inhalte zu Docker-Jenkins-Release-Testprojekten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Implementierung der automatisierten Freigabe und Bereitstellung von Centos7+Docker+Jenkins+ASP.NET Core 2.0
  • Installieren Sie Jenkins mit Docker und lösen Sie das Problem des anfänglichen Plugin-Installationsfehlers
  • Automatisches Erstellen und Bereitstellen mit Docker+Jenkins
  • So erstellen Sie eine automatisierte Bereitstellungsumgebung für Docker, Jenkins und Node.js von Grund auf

<<:  Verwenden Sie reines CSS, um einen Switch-Effekt zu erzielen

>>:  10 inhaltliche Prinzipien zur Verbesserung der Website-Performance

Artikel empfehlen

Detaillierte Installation und Konfiguration von hadoop2.7.2 unter Ubuntu15.10

Im Internet und in vielen Büchern gibt es viele T...

Ein grafisches Tutorial zur Installation von MySQL unter Windows

Zusammenfassung: Dieser Artikel erläutert hauptsä...

Ausführliche Erläuterung des globalen Status des WeChat-Applets

Vorwort Im WeChat-Applet können Sie globalData vo...

Welche Schleife ist in JavaScript die schnellste?

Wenn wir wissen, welche For-Schleife oder welcher...

Beispielanalyse der Auswirkungen des MySQL-Index auf die Sortierung

Dieser Artikel veranschaulicht anhand von Beispie...

So überprüfen Sie, wo die Metadatensperre in MySQL blockiert ist

So überprüfen Sie, wo die Metadatensperre in MySQ...

Tiefgreifendes Verständnis der Vue-cli4-Routing-Konfiguration

Inhaltsverzeichnis Vorwort - Vue Routing 1. Die g...

Detaillierte Erläuterung des Speichermodells der JVM-Serie

Inhaltsverzeichnis 1. Speichermodell und Laufzeit...

So erstellen Sie eine Baidu-Totlink-Datei

Baidu definiert zwei Arten von toten Linkformaten:...

Webdesign-Kenntnisse: Problem der adaptiven Höhe von Iframes

Manche Leute sind vielleicht noch nicht auf dieses...

So verwenden Sie Docker zum Bereitstellen eines Dubbo-Projekts

1. Verwenden Sie zunächst Springboot, um ein einf...

Tudou.com Frontend-Übersicht

1. Arbeitsteilung und Prozess <br />Bei Tud...