Docker 技术发展为微服务落地提供极大的便利。这篇文章主要给大家分享一下如何使用Docker来部署一个SpringBoot项目,为接下来SpringCloud项目的部署打下基础。
一、准备一个简单的SpringBoot项目
1.1 创建一个springboot项目,整理就不再多做赘述了。
1.2 添加spring-boot-starter-web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
1.3 增加一个测试Controller
1.4 启动->请求测试
二、添加docker-maven-plugin插件
在pom文件中添加dockerfile-maven-plugin插件
<build>
<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>1.4.10</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal> # 打包时候会定执行 dockerfile:build
</goals>
</execution>
</executions>
<configuration>
<repository>${project.artifactId}</repository> #image名字
<tag>${project.version}</tag> #image TAG
<buildArgs> #定义参数,在Dockerfile中使用
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
<dependencies> # build过程中提示我少这两个包,依据自己打包情况添加
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.14</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
三、编写Dockerfile文件
在pom文件的同级目录下新建Dockerfile文件
FROM openjdk:8-jre
MAINTAINER Gideon
ENTRYPOINT ["java", "-jar", "myservice.jar"]
# 在pom文件中定义的参数
ARG JAR_FILE
ADD target/${JAR_FILE} myservice.jar
四、打包部署
执行maven打包命令
mvn clean package -Dmaven.test.skip=true
查看打包的镜像
docker images
创建容器
docker run -d -p 8081:8080 --name dockerdemo docker-demo:1.0
查看容器
请求验证
OK!