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
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.
@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>
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 hinzuservice 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.
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/binspringboot/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/profilezurü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!