Docker构建SpringBoot项目
新建SpringBoot项目
1、项目
2、pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<dockerfile-version>1.4.9</dockerfile-version>
</properties>
<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>
<build>
<finalName>spring-boot-demo-docker</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${dockerfile-version}</version>
<configuration>
<repository>${project.build.finalName}</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
<!-- <executions>-->
<!-- <!–设置运行 mvn package 的时候自动执行docker build–>-->
<!-- <execution>-->
<!-- <id>default</id>-->
<!-- <phase>package</phase>-->
<!-- <goals>-->
<!-- <goal>build</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
</plugin>
</plugins>
</build>
新建Dockerfile
# 基础镜像
FROM openjdk:8-jdk-alpine
# 作者信息
MAINTAINER "**@qq.com"
# 添加一个存储空间
VOLUME /tmp
# 暴露8080端口
EXPOSE 8080
# 往容器中添加jar包
COPY spring-boot-demo-docker.jar app.jar
# 启动镜像自动运行程序
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/urandom","-jar","/app.jar"]
IDEA打包springboot项目
1、打包命令
mvn clean package -Dmaven.test.skip=true
上传阿里云
docker构建
docker build -t spring-boot-demo-docker:1.0.0-SNAPSHOT .
用.代表当前目录下(jar,Dockerfile文件都在此目录下)
root@iZwz9igpak5b59g11ute20Z ~]# docker build -t spring-boot-demo-docker:1.0.0-SNAPSHOT .
Sending build context to Docker daemon 317.2MB
Step 1/6 : FROM openjdk:8-jdk-alpine
---> a3562aa0b991
Step 2/6 : MAINTAINER "Yangkai.Shen 237497819@qq.com"
---> Using cache
---> 2daff5e0c39f
Step 3/6 : VOLUME /tmp
---> Using cache
---> b656bce58cc4
Step 4/6 : EXPOSE 8080
---> Using cache
---> 1af3e5859a55
Step 5/6 : COPY spring-boot-demo-docker.jar app.jar
---> 99152ed4713a
Step 6/6 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/urandom","-jar","/app.jar"]
---> Running in 3b639e8fd5b0
Removing intermediate container 3b639e8fd5b0
---> e1b8991598b9
Successfully built e1b8991598b9
Successfully tagged spring-boot-demo-docker:1.0.0-SNAPSHOT
docker运行
1、运行
[root@iZwz9igpak5b59g11ute20Z ~]# docker run -d -p 8080:8080 spring-boot-demo-docker:1.0.0-SNAPSHOT
d1c06410f6fe65409948cd537e1129a6fc9eb420f143b33ffb051af30b640a27
2、查看运行情况
3、测试