前言
Spring Boot 简化了Java Web的开发模式,Docker简化了应用的部署模式,所以,使用Spring Boot开发,Docker部署,是目前高效集约持续集成方式。这篇文章主要记录最简版的开发及部署流程。
开发
在IDEA上创建一个
Spring Boot maven project
编写一个
controller
@RequestMapping("/")
@RestController
public class HelloDockerController {
@RequestMapping("/hello")
public String hello() {
return "Hello Docker From Spring Boot";
}
}
- 执行
maven package
命令 生成 jar文件,为了方便,暂且重命名为docker.jar
。 - 可使用
java -jar docker.jar
测试是否正常运行,如果正常,继续下面步骤
编写Dockerfile
Dockerfile
是一个靠程序员手动编写的文本文件,是构建docker image
的一种手段。
- 在工程根目录创建一个空文件
mkdir dist
copy docker.jar 到此目录
touch Dockerfile
FROM centos
RUN yum -y install java
COPY ./docker.jar /usr/local
ENTRYPOINT ["java","-jar","/usr/local/docker.jar"]
构建
使用Dockerfile构建镜像的命令为:
docker build -t reponame .
其中,reponame
表示仓库名称,.
表示以当前文件夹构建
所以,我们需要这样来做:
docker build -t liuhao/springboot .
构建过程中,会一次下载所需的centos和java。成功之后会提示success
。
部署
构建成功之后,我们使用命令查看,镜像是否已经存在,并运行该镜像
docker images
docker run -di --name=springboot -p 8080:8080 liuhao/springboot
curl http://宿主机ip:8080/hello