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
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.serviceGunakan pemecut docker China
vi /etc/docker/daemon.json #添加后: { "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true }Mulakan semula docker
systemctl restart dockerMasukkan 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/profileMasukkan 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}/binIngat 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:buildBinaan 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-dockerSelepas 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_mahaviraAnda 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!