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

Mobile Frontend-Anpassungslösung (Zusammenfassung)

Ich habe online gesucht und festgestellt, dass in...

Aktivieren und Konfigurieren des MySQL-Protokolls für langsame Abfragen

Einführung Das MySQL-Protokoll für langsame Abfra...

Einige Vorschläge zur Linux-Systemoptimierung (Kerneloptimierung)

Swap deaktivieren Wenn auf dem Server ein Datenba...

Teilen Sie den Installationsdatensatz für MySql8.0.19

Im vorherigen Artikel wurde der Installationsproz...

Implementierung der CSS3-Button-Randanimation

Erster Blick auf die Wirkung: html <a href=&qu...

Teilen Sie 13 grundlegende Syntax von Typescript

Inhaltsverzeichnis 1. Was ist Ts 2. Grundlegende ...

So leiten Sie eine PC-Adresse in Vue an eine Mobiladresse um

Anforderungen: Die PC-Seite und die mobile Seite ...

Auszeichnungssprache - Liste

Standardisierte Designlösungen – Auszeichnungsspr...

Teilen Sie die Fallstricke von MySQLs current_timestamp und ihre Lösungen

Inhaltsverzeichnis MySQLs current_timestamp-Falle...

Zusammenfassung einiger kleinerer Probleme mit der MySQL-Autoinkrement-ID

Die folgenden Fragen basieren alle auf der InnoDB...