主要目的為了實(shí)現(xiàn)測試和實(shí)現(xiàn)利用Docker技術(shù)發(fā)布基于SpringBoot的jar包。
本文主要涉及到的技術(shù)和相關(guān)知識:Maven调窍,docker宝冕,docker-compose,git
環(huán)境配置:Maven邓萨,docker以及docker-compose安裝地梨,git或者別的倉庫
本次只是實(shí)現(xiàn)了根據(jù)POM文件中的Maven配置和Dockerfile文件以及docker-compose.yml文件實(shí)現(xiàn)對工程進(jìn)行編譯和生成docker鏡像文件以及執(zhí)行docker-compose命令進(jìn)行鏡像的發(fā)布。
1.Java項(xiàng)目工程如下配置:
圖片.png
2.Maven相關(guān)配置(POM文件)
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.12</version>
<configuration>
<imageName>syuukawa/microservice-${project.artifactId}</imageName>
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<forceTags>true</forceTags>
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
3.相關(guān)執(zhí)行的命令:
《1》從git上取得項(xiàng)目工程
git clone https://github.com/syuukawa/springcloud_docker.git
《2》對項(xiàng)目進(jìn)行編譯
mvn -f springcloud_docker/demo_layout/pom.xml clean package -U
《3》使用docker命令生成鏡像文件
mvn -f springcloud_docker/demo_layout/discovery/pom.xml docker:build
《4》取得docker-compose.yml文件【對文件格式要求比較嚴(yán)格試驗(yàn)多次才成功】
curl -X 'GET' -sSL 'https://github.com/syuukawa/springcloud_docker/demo_layout/master/docker-compose.yml' > docker-compose.yml
docker-compose.yml
discovery:
image: syuukawa/microservice-discovery:latest
ports:
- 8761:8761
volumes: - /tmp:/tmp
environment: - JAVA_OPTS="-Xms5000m -Xmx10000m"
command: bash -c "java -jar /app.jar"
《5》執(zhí)行docker-compose命令(根據(jù)docker-compose.yml文件)
docker-compose up
命令執(zhí)行正常則會啟動discovery service