Heim  >  Artikel  >  Java  >  So stellen Sie ein SpringBoot-Projekt mit Docker bereit

So stellen Sie ein SpringBoot-Projekt mit Docker bereit

WBOY
WBOYnach vorne
2023-05-22 23:58:042945Durchsuche

Erstellen Sie zunächst ein einfaches Spring-Boot-Projekt, fügen Sie dann Docker-Unterstützung zum Projekt hinzu und stellen Sie schließlich das Projekt bereit. Ein einfaches Spring-Boot-Projekt Rückkehr: Hallo Docker!

<parent>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-parent</artifactid>
 <version>2.0.0.release</version>
</parent>

Startup-Klasse

<dependencies>
   <dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-web</artifactid>
  </dependency>
 <dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-test</artifactid>
 <scope>test</scope>
 </dependency>
</dependencies>
Nach dem erfolgreichen Start wird der Browserzugriff: http://localhost:8080/, die Seite kehrt zurück: Hallo Docker!, was darauf hinweist, dass der Spring Boot Die Projektkonfiguration ist normal.

Spring-Boot-Projekt fügt Docker-Unterstützung hinzu

Docker-Image-Namen in POM hinzufügen In diesem Dokument wird beschrieben, wie das Image erstellt wird.

@restcontroller
public class dockercontroller {
 
  @requestmapping("/")
  public string index() {
    return "hello docker!";
  }
}

Diese Docker-Datei ist sehr einfach und fügt dem Image das Spring-Boot-JAR hinzu. Eine kurze Erklärung:

von bedeutet, dass das Image nicht lokal ist. Es wird vom Dockerhub-Volume heruntergeladen, das Volume verweist auf ein /tmp-Verzeichnis. Da Spring Boot den integrierten Tomcat-Container verwendet, verwendet Tomcat standardmäßig /tmp als Arbeitsverzeichnis. Die Wirkung dieses Befehls ist: Erstellen Sie eine temporäre Datei im Verzeichnis /var/lib/docker des Hosts und verknüpfen Sie sie mit dem Verzeichnis /tmp im Container. Fügen Sie die Datei hinzu, kopieren Sie sie und benennen Sie sie um Einstiegspunkt: Um die Startzeit von Tomcat zu verkürzen, fügen Sie die Systemeigenschaft von java.security.egd hinzu, um auf /dev/urandom als Einstiegspunkt zu verweisen

Auf diese Weise fügt das Spring Boot-Projekt Docker-Abhängigkeit hinzu.

Erstellen einer Verpackungsumgebung

Wir benötigen eine Docker-Umgebung, um das Spring Boot-Projekt zu packen. Es ist mühsam, eine Docker-Umgebung in Windows zu erstellen, daher verwende ich hier Centos 7 als Beispiel.

  • Installieren Sie die Docker-Umgebung.

  • Installation

    @springbootapplication
    public class dockerapplication {
     
     public static void main(string[] args) {
     springapplication.run(dockerapplication.class, args);
     }
    }

    Geben Sie die Docker-Version ein und wenn die Versionsinformationen zurückgegeben werden, ist die Installation normal.
  • Jdk installieren

  • <properties>
     <docker.image.prefix>springboot</docker.image.prefix>
    </properties>

    Umgebungsvariablen konfigurieren Öffnen Sie vim /etc/profile und fügen Sie etwas Inhalt hinzu

    <build>
     <plugins>
     <plugin>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-maven-plugin</artifactid>
     </plugin>
     <!-- docker maven plugin -->
     <plugin>
      <groupid>com.spotify</groupid>
      <artifactid>docker-maven-plugin</artifactid>
      <version>1.0.0</version>
      <configuration>
      <imagename>${docker.image.prefix}/${project.artifactid}</imagename>
      <dockerdirectory>src/main/docker</dockerdirectory>
      <resources>
       <resource>
       <targetpath>/</targetpath>
       <directory>${project.build.directory}</directory>
       <include>${project.build.finalname}.jar</include>
       </resource>
      </resources>
      </configuration>
     </plugin>
     <!-- docker maven plugin -->
     </plugins>
    </build>
  • Nachdem die Änderung abgeschlossen ist, machen Sie sie wirksam
from openjdk:8-jdk-alpine
volume /tmp
add spring-boot-docker-1.0.jar app.jar
entrypoint ["java","-djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Geben Sie Java -Version ein, um die Versionsinformationen und die Installation zurückzugeben ist normal.

Maven installieren

Herunterladen:

yum install docker

Ändern Sie die Umgebungsvariablen und fügen Sie die folgenden Zeilen in /etc/profile hinzu

service docker start
chkconfig docker on
 
#lctt 译注:此处采用了旧式的 sysv 语法,如采用centos 7中支持的新式 systemd 语法,如下:
systemctl start docker.service
systemctl enable docker.service
Denken Sie daran, die Quelle /etc/profile auszuführen, damit die Umgebungsvariablen wirksam werden.

Geben Sie mvn -version ein und die Versionsinformationen werden zurückgegeben, dann ist die Installation normal.

Die gesamte Build-Umgebung ist jetzt konfiguriert.

Verwenden Sie Docker, um das Spring-Boot-Projekt bereitzustellen.

Kopieren Sie das Projekt Spring-Boot-Docker auf den Server und geben Sie den Projektpfad für Verpackungstests ein.

vi /etc/docker/daemon.json
 
#添加后:
{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "live-restore": true
}

Nachdem wir das Startprotokoll von Spring Boot gesehen haben, zeigt es, dass es kein Problem mit der Umgebungskonfiguration gibt. Als nächstes verwenden wir Dockerfile, um das Image zu erstellen.

systemctl restart docker
Der erste Build ist möglicherweise etwas langsam. Wenn Sie den folgenden Inhalt sehen, ist der Build erfolgreich:
yum -y install java-1.8.0-openjdk*

Verwenden Sie den Docker-Images-Befehl, um das erstellte Image anzuzeigen:

export java_home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
export path=$path:$java_home/bin

springboot/spring-boot-docker is what Wir haben ein Image erstellt. Der nächste Schritt besteht darin, das Image auszuführen ://192.168.0. x:8080/ gibt

source /etc/profile

zurück und zeigt an, dass das Spring-Boot-Projekt erfolgreich mit Docker bereitgestellt wurde!

Das obige ist der detaillierte Inhalt vonSo stellen Sie ein SpringBoot-Projekt mit Docker bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen