一、环境搭建
部署之前需要已经安装Docker和Maven(用于打包)。
- 安装Docker
- 安装Maven
1、Maven下载链接
2、解压
3、配置环境变量
环境变量配置方法(Windows)
1)添加新的系统环境变量:MAVEN_HOME
2)设置其值为你安装的目录:
3)更新系统PATH 变量,添加变量值:%MAVEN_HOME%\bin
4)点击确定;
5)然后使用【mvn --version】命令验证maven安装情况,如下图所示。
出现如图,则安装成功。
二、SpringBoot项目添加Docker支持
1)新建项目,添加一个DockerController,方便进行测试。
package com.pibigstar.web;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DockerController {
@GetMapping("/hello")
@ResponseBody
public String hello() {
return "Hello Docker";
}
}
2)添加Docker支持
<properties>
<!--添加Docker支持 Docker镜像名称-->
<docker.image.prefix>springboot</docker.image.prefix>
</properties>
添加 Docker插件:
<!-- docker插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
3)编写Dockerfile文件
FROM java:8
VOLUME /tmp
COPY ./yumi-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
FROM指令指定一个已经存在的镜像,告诉Docker后续的指令都是在这个基础上进行的。例如:FROM java:8表示使用 Jdk1.8 环境为基础镜像进行构建镜像。
VOLUME ,VOLUME 指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
ADD ,拷贝文件并且重命名
ENTRYPOINT,为了缩短Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为ENTRYPOINT。
三、部署Spring Boot项目
1)maven打包:mvn package
2)运行:java -jar target/spring-boot-docker-1.0.jar
3)项目启动成功可在浏览器中进行访问,如图,部署成功。