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

MySQL-Tabellenübergreifende Abfrage und Tabellenübergreifende Aktualisierung

Freunde, die über Grundkenntnisse in SQL verfügen...

Next.js – Erste Schritte-Tutorial

Inhaltsverzeichnis Einführung Erstellen eines Nex...

5 MySQL-GUI-Tools, die Ihnen bei der Datenbankverwaltung empfohlen werden

Es gibt viele Datenbankverwaltungstools für MySQL...

JavaScript zum Erzielen eines Bodeneffekts

In diesem Artikel wird der spezifische JavaScript...

Ein Beispiel für die Implementierung eines adaptiven Quadrats mit CSS

Die traditionelle Methode besteht darin, ein Quad...

33 Eis- und Schnee-Schriftarten zum Download empfohlen (privat und kommerziell)

01 Winterflocken (nur einzeln) 02 Snowtop Caps (k...

Der Unterschied zwischen MySQL Outer Join und Inner Join Abfrage

Die Syntax für einen äußeren Join lautet wie folg...

Lösung zur Deinstallation von Python und Yum im CentOs-System

Hintergrund des Unfalls: Vor einigen Tagen habe i...

JS implementiert Anforderungsdispatcher

Inhaltsverzeichnis Abstraktion und Wiederverwendu...