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

Bagaimana untuk menggunakan projek SpringBoot menggunakan Docker

WBOY
Lepaskan: 2023-05-22 23:58:04
ke hadapan
3018 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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

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

Startup class

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

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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"]
Salin selepas log masuk

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
Salin selepas log masuk
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
Salin selepas log masuk

Gunakan pemecut docker China

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

Mulakan semula docker

systemctl restart docker
Salin selepas log masuk

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

Pasang jdk

yum -y install java-1.8.0-openjdk*
Salin selepas log masuk

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

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
Salin selepas log masuk
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
Salin selepas log masuk

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
Salin selepas log masuk
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
Salin selepas log masuk

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] ------------------------------------------------------------------------
Salin selepas log masuk

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
Salin selepas log masuk
.

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

docker run -p 8080:8080 -t springboot/spring-boot-docker
Salin selepas log masuk

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
Salin selepas log masuk

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

hello docker!
Salin selepas log masuk
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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan