So verbinden Sie die Idee mit Docker, um eine Bereitstellung mit einem Klick zu erreichen

So verbinden Sie die Idee mit Docker, um eine Bereitstellung mit einem Klick zu erreichen

1. Ändern Sie die Docker-Konfigurationsdatei und öffnen Sie Port 2375

[root@s162 Docker]# vim /usr/lib/systemd/system/docker.service
#Suchen Sie ExecStart, fügen Sie am Ende # hinzu und fügen Sie -H tcp://0.0.0.0:2375 hinzu 

[root@s162 Docker]# systemctl Daemon-Reload
[root@s162 Docker]# systemctl starte Docker

## Prüfen Sie, ob Port 2375 aktiviert ist [root@s162 docker]# lsof -i:2375
BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE/AUS KNOTENNAME
dockerd 27021 root 5u IPv6 352598799 0t0 TCP *:2375 (HÖREN)

2. Idee zur Installation und Konfiguration des Docker-Plugins

2.1. Installieren Sie das Docker-Plugin aus dem Idea-Plugins-Markt

leicht…

2.2. Docker konfigurieren

Bildbeschreibung hier einfügen

3. Stellen Sie das Springboot-Projekt auf dem Docker-Server bereit

3.1. Docker/Dockerfile schreiben

Bildbeschreibung hier einfügen

3.2. Maven fügt das Plug-In „docker-maven-plugin“ hinzu

 <Plugin>
   <groupId>com.spotify</groupId>
   <artifactId>Docker-Maven-Plugin</artifactId>
   <version>1.0.0</version>
   <Konfiguration>
    <!--Geben Sie den Namen des generierten Bildes an. Wenn Sie kein Tag angeben, wird standardmäßig das neueste verwendet.-->
    <imageName>jhs/${project.artifactId}:${project.version}</imageName>
    <!--Zusätzlich angegebene Tags hinzufügen, nicht erforderlich-->
    <!--
    <BildTags>
     <imageTag>${project.version}</imageTag>
    </imageTags>
    -->

    <!-- Geben Sie den Dockerfile-Pfad an: unter dem Stammpfad des Projekts -->
    <dockerDirectory>${project.basedir}/docker</dockerDirectory>
    <!--Geben Sie die Remote-Docker-API-Adresse an-->
    <dockerHost>http://192.168.129.162:2375</dockerHost>


    <!-- Ressourcen kopieren -->
    <Ressourcen>
     <Ressource>
      <Zielpfad>/</Zielpfad>
      <Verzeichnis>${project.build.directory}</Verzeichnis>
      <include>${project.build.finalName}.jar</include>
     </Ressource>
    </Ressourcen>


    <!--Wenn Docker Dockerfile erstellt: Variablen beim Erstellen des Images festlegen -->
    <BuildArgs>
     <JAR_FILE>Ziel/${project.build.finalName}.jar</JAR_FILE>
    </buildArgs>
   </Konfiguration>
  </plugin>

3.3. Docker: Erstellen

Verwenden Sie den Befehl $ mvn clean package docker:build -Dmaven.test.skip=true um das Image zu erstellen und zu prüfen, ob das Image erfolgreich auf den Docker-Server hochgeladen wurde:

Bildbeschreibung hier einfügen

3.4 Docker:Tag

Das Docker-Befehlszeilenformat ist : #docker tag <imageId or imageName> <nexus-hostname>:<repository-port>/<image>:<tag>

Plugin-Konfiguration
<configuration> Zusätzliche Konfiguration:

 <Konfiguration>
	 <image>jhs/${project.artifactId}:${project.version}</image>
  <!-- Docker-Tag -->
  <neuerName>192.168.129.160:5000/${project.artifactId}:${project.version}</neuerName>
</Konfiguration>

Markieren Sie das Image, um es für den nachfolgenden Push vorzubereiten: mvn clean docker:tag -Dmaven.test.skip=true -DskipDockerBuild

Bildbeschreibung hier einfügen

3.5 Docker: Push

Plugin-Konfiguration
<configuration> Zusätzliche Konfiguration:

<Konfiguration>
	 <!-- Docker Push pusht in das Remote-Image-Repository-->
  <!-- serverId: ist die in der Maven-Einstellung „setting.xml“ konfigurierte Serverinformations-ID-->
  <serverId>nexus-docker-registry</serverId>
  <registryUrl>192.168.129.160:5000</registryUrl>
  	
  	<!-- Pushe das neue Image mit Tag zu Nexus-->
		<imageName>192.168.129.160:5000/${project.artifactId}</imageName>
</Konfiguration>

Pushen Sie das oben markierte Image zum privaten Server Nexus: mvn clean docker:push -Dmaven.test.skip=true -DskipDockerBuild -DskipDockerTag

Bildbeschreibung hier einfügen

3.6 Docker-Plugin-Parameter

  • -DskipDockerBuild um die Image-Erstellung zu überspringen
  • -DskipDockerTag um den Image-Tag zu überspringen
  • -DskipDockerPush um das Pushen von Images zu überspringen
  • -DskipDocker um alle Docker-Ziele zu überspringen

3.7 Befehle an Maven-Phasen binden

<Hinrichtungen>
  <Ausführung>
   <id>Bild erstellen</id>
   <phase>Paket</phase>
   <Ziele>
    <goal>bauen</goal>
   </Ziele>
  </Ausführung>

  <Ausführung>
   <id>Tag-Bild</id>
   <phase>Paket</phase>
   <Ziele>
    <goal>Tag</goal>
   </Ziele>
   <Konfiguration>
    <image>jhs/${project.artifactId}:${project.version}</image>
    <neuerName>192.168.129.160:5000/${project.artifactId}:${project.version}</neuerName>
   </Konfiguration>
  </Ausführung>


  <Ausführung>
   <id>Push-Bild</id>
   <phase>Bereitstellen</phase>
   <Ziele>
    <goal>drücken</goal>
   </Ziele>
   <Konfiguration>
    <!-- Docker Push pusht in das Remote-Image-Repository-->
    <!-- serverId: ist die in der Maven-Einstellung „setting.xml“ konfigurierte Serverinformations-ID-->
    <serverId>nexus-docker-registry</serverId>
    <registryUrl>192.168.129.160:5000</registryUrl>
    <imageName>192.168.129.160:5000/${project.artifactId}</imageName>
   </Konfiguration>
  </Ausführung>

 </Ausführungen>

3.8 Bewährte Vorgehensweisen

 <Eigenschaften>
  <docker.host>http://192.168.129.162:2375</docker.host>
  <docker.registry.url>192.168.129.160:5000</docker.registry.url>
 </Eigenschaften>
 
<Bauen>
 <Plugins>
 	<Plugin>
  <groupId>com.spotify</groupId>
  <artifactId>Docker-Maven-Plugin</artifactId>
  <version>1.0.0</version>
  <Konfiguration>
   <imageName>dic/${project.artifactId}:${project.version}</imageName>
   <!--Fügen Sie zusätzliche angegebene Tags hinzu (es können mehrere Tags konfiguriert werden), wenn keine angegeben sind, wird das neueste verwendet-->
   <!--
    <BildTags>
     <imageTag>${project.version}</imageTag>
    </imageTags>
    -->


   <!-- Geben Sie den Dockerfile-Pfad an: unter dem Stammpfad des Projekts -->
   <dockerDirectory>${project.basedir}/docker</dockerDirectory>
   <!--Geben Sie die Remote-Docker-API-Adresse an-->
   <dockerHost>${docker.host}</dockerHost>


   <!-- Ressourcen kopieren -->
   <Ressourcen>
    <Ressource>
     <Zielpfad>/</Zielpfad>
     <Verzeichnis>${project.build.directory}</Verzeichnis>
     <include>${project.build.finalName}.jar</include>
    </Ressource>
   </Ressourcen>


   <!--Wenn Docker Dockerfile erstellt: Variablen beim Erstellen des Images festlegen -->
   <BuildArgs>
    <JAR_FILE>Ziel/${project.build.finalName}.jar</JAR_FILE>
   </buildArgs>
  </Konfiguration>

  <Hinrichtungen>
   <Ausführung>
    <id>Bild erstellen</id>
    <phase>Paket</phase>
    <Ziele>
     <goal>bauen</goal>
    </Ziele>
   </Ausführung>

   <Ausführung>
    <id>Tag-Bild</id>
    <phase>Paket</phase>
    <Ziele>
     <goal>Tag</goal>
    </Ziele>
    <Konfiguration>
     <image>dic/${project.artifactId}:${project.version}</image>
     <neuerName>${docker.registry.url}/${project.artifactId}:${project.version}</neuerName>
    </Konfiguration>
   </Ausführung>


   <Ausführung>
    <id>Push-Bild</id>
    <phase>Bereitstellen</phase>
    <Ziele>
     <goal>drücken</goal>
    </Ziele>
    <Konfiguration>
     <!-- Docker Push pusht in das Remote-Image-Repository-->
     <!-- serverId: ist die in der Maven-Einstellung „setting.xml“ konfigurierte Serverinformations-ID-->
     <serverId>nexus-docker-registry</serverId>
     <registryUrl>${docker.registry.url}</registryUrl>
     <imageName>${docker.registry.url}/${project.artifactId}</imageName>
    </Konfiguration>
   </Ausführung>

  </Ausführungen>
 </plugin>
 </plugins>
 </bauen>

4. Detaillierte Schritte zur Installation von Harbor, einem privaten Docker-Repository (Ergänzung)

https://www.jb51.net/article/161964.htm

Dies ist das Ende dieses Artikels über die Idee, Docker zu verbinden, um eine Bereitstellung mit einem Klick zu erreichen. Weitere verwandte Ideen zum Verbinden von Docker, um eine Bereitstellung mit einem Klick zu erreichen, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So stellen Sie eigenständigen Pulsar und geclustertes Redis mit Docker bereit (Entwicklungsartefakt)
  • Implementierung des Deployment-War-Package-Projekts mit Docker
  • Beispiel für die Bereitstellung von MySQL 8.0 mit Docker
  • Best Practices für die Bereitstellung des ELK7.3.0-Protokollsammlungsdienstes mit Docker
  • Detaillierter Prozess der Installation und Bereitstellung von OnlyOffice in Docker

<<:  Detaillierte Erklärung der MySQL-Alter-Ignore-Syntax

>>:  Element Tabelle Tabellenkomponente Mehrfeld (Mehrspalten) Sortiermethode

Artikel empfehlen

WeChat-Applet + ECharts zur Realisierung eines dynamischen Aktualisierungsprozesses

Vorwort Kürzlich stieß ich auf eine Anforderung, ...

React realisiert den gesamten Prozess des Seitenwasserzeicheneffekts

Inhaltsverzeichnis Vorwort 1. Anwendungsbeispiele...

VMware Workstation 12 installiert Ubuntu 14.04 (64 Bit)

1. Installationsumgebung Computermodell: Lenovo Y...

HTML verwendet Laufschrift, um Text nach links und rechts scrollen zu lassen

Code kopieren Der Code lautet wie folgt: <KÖRP...

Eine kurze Analyse von MySQL-Sperren und -Transaktionen

MySQL selbst wurde auf Basis des Dateisystems ent...

Anweisungen zur Verwendung der Option --rm von Docker Run

Wenn der Docker-Container beendet wird, bleibt da...

Der Button ist im IE auf beiden Seiten gestreckt

Wenn Sie Schaltflächen (Eingabe, Schaltfläche) sch...

Tab-Effekte mit JS schreiben

In diesem Artikelbeispiel wird der spezifische Co...

Beispiel für die Implementierung von QR-Code-Scaneffekten mit CSS3

Online-Vorschau https://jsrun.pro/AafKp/ Erster B...

Lebenszyklus und Hook-Funktionen in Vue

Inhaltsverzeichnis 1. Was ist der Lebenszyklus 2....

Zusammenfassung einiger verwandter Vorgänge geplanter Linux-Aufgaben

Ich habe verschiedene große Websites durchsucht u...

Tutorial zur Installation von MySQL unter Linux

Inhaltsverzeichnis 1. Löschen Sie die alte Versio...

Der Prozess der Installation von Docker im Linux-System

In diesem Blog führe ich Sie in einfachen Schritt...