1. 结合起来跟其他java程序差不多
无非就是dockerfile,然后build ,push ,pull 。但是spring boot特别适合微服务,特别适合在容器里面跑,因为他内嵌了tomcat,单进程。https://spring.io/guides/gs/spring-boot-docker/ 讲述了他和mvn结合的奇妙例子。
2. Dockerfile
1 2 3 4 5
| FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE ADD ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
|
虽然这是一个普通的不能再普通的dockerfile,但是里面的JAR_FILE很完美的替代了硬编码,具体是mvn传进去的参数。
3.mvn配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <properties> <docker.image.prefix>springio</docker.image.prefix> </properties> <build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <repository>${docker.image.prefix}/${project.artifactId}</repository> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> </plugins> </build>
|
用了个dockerfile-maven-plugin的插件,直接将mvn package 的jar文件名传到dockerfile里面去。
可以直接用mvn命令来build 。
1
| mvn install dockerfile:build
|
build完之后可以push,带tag的push,非常方便。官网https://github.com/spotify/docker-maven-plugin