Rumah  >  Artikel  >  Java  >  Bagaimana untuk menggunakan projek SpringBoot menggunakan Docker

Bagaimana untuk menggunakan projek SpringBoot menggunakan Docker

WBOY
WBOYke hadapan
2023-05-22 23:58:042991semak imbas

Mula-mula bina projek but spring yang ringkas, kemudian tambahkan sokongan docker pada projek itu, dan akhirnya gunakan projek itu.

Projek but spring yang ringkas

Dalam pom.xml, gunakan kebergantungan berkaitan spring boot 2.0

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

Tambah kebergantungan web dan ujian

<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>

Buat dockercontroller dengan kaedah index() di dalamnya apabila diakses, ia kembali: hello docker!

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

Startup class

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

Selepas menambahnya, mulakan projek. dan mula Selepas berjaya, pelayar mengakses: http://localhost:8080/, dan halaman kembali: hello docker!, menunjukkan bahawa konfigurasi projek but spring adalah normal.

projek spring boot menambah sokongan docker

Tambah nama imej docker dalam pom.xml-properties

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

plugin dan tambah docker build Plug -in:

<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>

Buat fail dockerfile dalam direktori src/main/docker Fail dockerfile digunakan untuk menerangkan cara membina imej.

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"]

Fail docker ini sangat mudah Bina persekitaran asas jdk dan tambahkan balang but spring pada imej. persekitaran jdk8 sebagai asas Cermin, jika cermin bukan setempat, ia akan dimuat turun dari dockerhub

  • volume, volum menghala ke direktori /tmp, memandangkan but spring menggunakan terbina dalam bekas tomcat, tomcat menggunakan /tmp sebagai direktori Kerja lalai. Kesan arahan ini ialah: buat fail sementara dalam direktori /var/lib/docker hos dan pautkannya ke direktori /tmp dalam bekas

  • tambah, salin fail dan Namakan semula

  • titik masuk Untuk memendekkan masa permulaan tomcat, tambahkan sifat sistem java.security.egd untuk menunjuk ke /dev/urandom sebagai titik masuk

    <.>
  • Dengan cara ini, menambahkan kebergantungan docker pada projek spring boot selesai.

  • Membina persekitaran pembungkusan

Kami memerlukan persekitaran docker untuk membungkus projek but spring Sangat menyusahkan untuk membina persekitaran docker dalam tingkap, jadi Saya menggunakan centos 7 di sini.
Pasang persekitaran docker

Pasang

yum install docker
Selepas pemasangan selesai, gunakan arahan berikut untuk memulakan perkhidmatan docker dan tetapkannya untuk Memulakan:
service docker start
chkconfig docker on
 
#lctt 译注:此处采用了旧式的 sysv 语法,如采用centos 7中支持的新式 systemd 语法,如下:
systemctl start docker.service
systemctl enable docker.service

Gunakan pemecut docker China

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

Mulakan semula docker

systemctl restart docker

Masukkan versi docker dan kembalikan maklumat versi, maka pemasangan adalah seperti biasa.

Pasang jdk

yum -y install java-1.8.0-openjdk*

Konfigurasikan pembolehubah persekitaran Buka vim /etc/profile dan tambah kandungan

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
Selepas pengubahsuaian selesai, jadikan ia berkesan
source /etc/profile

Masukkan java -version dan maklumat versi akan dikembalikan, kemudian pemasangan adalah normal.

Pasang maven

Muat turun:

## 解压
tar vxf apache-maven-3.5.2-bin.tar.gz
## 移动
mv apache-maven-3.5.2 /usr/local/maven3
Ubah suai pembolehubah persekitaran dan tambahkan baris berikut pada /etc/profile
maven_home=/usr/local/maven3
export maven_home
export path=${path}:${maven_home}/bin

Ingat untuk melaksanakan sumber /etc/profile untuk menjadikan pembolehubah persekitaran berkuat kuasa.

Masukkan mvn -version untuk mengembalikan maklumat versi dan pemasangan adalah normal.

Dengan cara ini, keseluruhan persekitaran binaan dikonfigurasikan.

Gunakan docker untuk menggunakan projek but spring

Salin projek spring-boot-docker ke pelayan dan masukkan laluan projek untuk ujian pembungkusan.

#打包
mvn package
#启动
java -jar target/spring-boot-docker-1.0.jar
Selepas melihat log permulaan but spring, ia menunjukkan bahawa tiada masalah dengan konfigurasi persekitaran Seterusnya, kami menggunakan fail docker untuk membina imej.
mvn package docker:build

Binaan pertama mungkin agak perlahan Apabila anda melihat kandungan berikut, binaan berjaya:

...
step 1 : from openjdk:8-jdk-alpine
 ---> 224765a6bdbe
step 2 : volume /tmp
 ---> using cache
 ---> b4e86cc8654e
step 3 : add spring-boot-docker-1.0.jar app.jar
 ---> a20fe75963ab
removing intermediate container 593ee5e1ea51
step 4 : entrypoint java -djava.security.egd=file:/dev/./urandom -jar /app.jar
 ---> running in 85d558a10cd4
 ---> 7102f08b5e95
removing intermediate container 85d558a10cd4
successfully built 7102f08b5e95
[info] built springboot/spring-boot-docker
[info] ------------------------------------------------------------------------
[info] build success
[info] ------------------------------------------------------------------------
[info] total time: 54.346 s
[info] finished at: 2018-03-13t16:20:15+08:00
[info] final memory: 42m/182m
[info] ------------------------------------------------------------------------

Gunakan arahan imej docker untuk melihat imej yang dibina:

docker images
repository           tag         image id      created       size
springboot/spring-boot-docker  latest       99ce9468da74    6 seconds ago    117.5 mb
.

springboot/spring-boot-docker ialah imej yang kami bina Langkah seterusnya ialah menjalankan imej

docker run -p 8080:8080 -t springboot/spring-boot-docker

Selepas permulaan selesai, kami menggunakan docker ps untuk melihat imej yang sedang berjalan:

docker ps
container id    image              command         created       status       ports          names
049570da86a9    springboot/spring-boot-docker  "java -djava.security"  30 seconds ago   up 27 seconds    0.0.0.0:8080->8080/tcp  determined_mahavira

Anda boleh melihat Bekas yang kami bina sedang berjalan Lawati penyemak imbas: http://192.168.0.x:8080/, dan

hello docker!

dikembalikan, menunjukkan bahawa projek but spring telah berjaya. digunakan menggunakan docker!

Atas ialah kandungan terperinci Bagaimana untuk menggunakan projek SpringBoot menggunakan Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam