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
<. 🎜>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
service docker start chkconfig docker on #lctt 译注:此处采用了旧式的 sysv 语法,如采用centos 7中支持的新式 systemd 语法,如下: systemctl start docker.service systemctl enable docker.service
vi /etc/docker/daemon.json #添加后: { "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true }
systemctl restart docker
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
source /etc/profile
Pasang maven
Muat turun: ## 解压
tar vxf apache-maven-3.5.2-bin.tar.gz
## 移动
mv apache-maven-3.5.2 /usr/local/maven3
maven_home=/usr/local/maven3 export maven_home export path=${path}:${maven_home}/bin
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
mvn package docker:build
... 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] ------------------------------------------------------------------------
docker images repository tag image id created size springboot/spring-boot-docker latest 99ce9468da74 6 seconds ago 117.5 mb
docker run -p 8080:8080 -t springboot/spring-boot-docker
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
hello 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!