主要目的为了实现测试和实现利用Docker技术发布基于SpringBoot的jar包。
本文主要涉及到的技术和相关知识:Maven,docker,docker-compose,git
环境配置:Maven,docker以及docker-compose安装,git或者别的仓库
本次只是实现了根据POM文件中的Maven配置和Dockerfile文件以及docker-compose.yml文件实现对工程进行编译和生成docker镜像文件以及执行docker-compose命令进行镜像的发布。
1.Java项目工程如下配置:
2.Maven相关配置(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.相关执行的命令:
《1》从git上取得项目工程
git clone https://github.com/syuukawa/springcloud_docker.git
《2》对项目进行编译
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文件【对文件格式要求比较严格试验多次才成功】
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》执行docker-compose命令(根据docker-compose.yml文件)
docker-compose up
命令执行正常则会启动discovery service