Docker容器化Spring boot项目
1、创建spring boot项目
Idea创建名为simple-api的spring boot程序,依赖web和rest实现一个path为/的controller
2、构建并启动项目(在项目根目录下)
mvn clean package && java -jar target/simple-api-0.0.1-SNAPSHOT.jar
3、检查项目运行
http://localhost:8080
4、创建Dockerfile(在项目根目录下)
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
5. 增加maven的docker插件
<properties>
<java.version>1.8</java.version>
<docker.image.prefix>demo</docker.image.prefix>
</properties>
<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>
6、创建docker镜像
mvn install dockerfile:build
7、运行镜像
docker run -p 8080:8080 -t demo/simple-api
8、查看运行结果
http://localhost:8080
注意
如果上面第六步很长时间没反应,那可能是墙的原因,我当时等了10多分钟才构建好。这里有个简便快捷的方法,仅供参考。
docker build --build-arg JAR_FILE=target/simple-api-0.0.1-SNAPSHOT.jar -t simple-api .