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

So erstellen Sie eine Tabelle in MySQL und fügen Feldkommentare hinzu

Code und Beispiele direkt posten #Schreiben Sie K...

Wir zeigen Ihnen einen Trick, um einen Textvergleich unter Linux durchzuführen

Vorwort Während des Schreibens des Codes werden w...

JavaScript imitiert den Taobao-Lupeneffekt

In diesem Artikel wird der spezifische Code für J...

Detaillierte Erklärung, wie Sie den Speicherverbrauch in MySql reduzieren können

Vorwort Standardmäßig initialisiert MySQL einen g...

Tutorial zur Installation und Konfiguration von MySQL 8.0.12 unter Win10

Installation, Konfiguration, Start, Anmeldung und...

Zusammenfassung der Methoden zur Verbesserung der MySQL-Anzahl

Ich glaube, dass viele Programmierer mit MySQL ve...

So verwenden Sie Typescript zum Kapseln von lokalem Speicher

Inhaltsverzeichnis Vorwort Szenarien für die Verw...

Front-End-JavaScript versteht Funktions-Currying gründlich

Inhaltsverzeichnis 1. Was ist Curry 2. Verwendung...

Implementierung von Check Constraints in MySQL 8.0

Hallo zusammen, ich bin Tony, ein Lehrer, der nur...

Erfahrung in der Lösung von Tomcat-Speicherüberlaufproblemen

Vor einiger Zeit habe ich Testern eine Produktver...

Implementierung der Nginx-Konfiguration des lokalen Image-Servers

Inhaltsverzeichnis 1. Einführung in Nginx 2. Aufb...

MySQL Serie 12 Backup und Wiederherstellung

Inhaltsverzeichnis Tutorial-Reihe 1. Beschreibung...

Verwenden von CSS3 zum Implementieren eines Schriftfarbverlaufs

Beim Verwenden von Animation.css habe ich festges...

Vue verwendet dynamische Komponenten, um einen TAB-Umschalteffekt zu erzielen

Inhaltsverzeichnis Problembeschreibung Was ist di...