Spring Boot 部署
简单介绍三种Spring Boot应用的部署方式,分别是:nohub、Linux 服务化、Docker,nohub方式和Linux服务化建议用于单体应用,分布式应用建议使用 Docker。教程建立在Spring Boot已经完成打包并且可用情况下。
环境
CentOS 7,SELinux开启
Spring Boot应用程序(路径为/program/app.jar
)
nohub启动
直接启动,这种方式其实就是 java -jar
,只是通过 nohub 使程序能够以守护进程继续运行
1 |
|
查询程序进程
1 |
|
停止程序进程
1 |
|
Linux 服务化
为 Spring Boot 应用建立一个简单的 Linux 服务
新增服务文件
1 |
|
编辑内容
1 |
|
启动服务
1 |
|
停止服务
1 |
|
重启服务
1 |
|
自启服务
1 |
|
关闭自启
1 |
|
Docker 部署
准备镜像
新建 Dockerfile
1
vim /program/Dockerfile
边界 Dockerfile
1
2
3
4FROM openjdk:8-jre-alpine
VOLUME ["/tmp"]
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar"]
CMD ["/program/app.jar"]构建镜像
1
docker build -f ./Dockerfile -t myapp .
启动 Spring Boot 服务
为了简单说明 Docker 部署,这里先使用 host 网络模式
1
2
3
4
5
6
7docker run -d \
--net=host \
--restart=unless-stopped \
--name myapp \
-v /etc/localtime:/etc/localtime \
-v /program/app.jar:/program/app.jar:ro \
myappnet:网络模式
restart:重启策略。unless-stopped,服务异常时总是重启,除非主动停止
name:容器名
第一个-v:同步物理机的时间至容器
第二个-v:映射物理机文件
/program/app.jar
至容器/program/app.jar
Spring Boot 部署
http://example.com/2019/09/11/Spring-Boot-部署-Linux-服务化/