likes
comments
collection
share

SpringBoot 项目发布部署,包含Linux部署及Docker部署

作者站长头像
站长
· 阅读数 51

在我们项目开发完毕后,免不了就是发布部署,现在我们部署一般就是要么直接在linux服务上安装jdk环境部署或者部署到docker上,个人是比较推荐部署到docker上的,这篇文章就讲讲两种方式的具体部署流程。

一、Linux部署

1. 安装JDK环境

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

2. 上传打好的jar包

这一步可以直接本地打好jar包或者用Jenkins等构建工具构建好,然后传到服务器的相应位置。

SpringBoot 项目发布部署,包含Linux部署及Docker部署

3. 后台运行jar包

nohup java -jar -server springboot-02-0.0.1-SNAPSHOT.jar > springboot-02-0.0.1-SNAPSHOT.jar.log &
  • nohup是linux系统提供的程序后台运行的命令
  • java -jar就是运行jar包的命令
  • -server指用server模式运行,内部使用了C2的重量级编译器,这个模式相比默认的client模式虽然启动速度有所降低,但是运行性能更高
  • springboot-02-0.0.1-SNAPSHOT.jar.log指日志文件

4. 启动脚本

这里给大家提供一个完整的启动脚本,方便大家使用

boot-jar.sh:

#!/bin/bash
nohup java -server -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms256m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar "$1" > "$1.log" 2>&1 &

使用时先加一下执行权限,然后指定相应jar包启动

chmod u+x boot-jar.sh
./boot-jar.sh springboot-02-0.0.1-SNAPSHOT.jar

二、Docker部署

1. Dockerfile文件

首先在项目根目录创建Dockerfile文件,我们通过Dockerfile来生成镜像,写入以下内容

FROM openjdk:8
COPY *.jar /app.jar
CMD ["--server.port=8081"]
EXPOSE 8081
ENTRYPOINT ["java", "-jar", "/app.jar"]
  • FROM:指定openjdk的版本
  • COPY:把对应的jar包拷贝到容器里
  • CMD:指定运行的参数,如果有jvm调优的参数也可写到这里
  • EXPORT:指定容器暴露的端口
  • ENTRYPOINT:容器运行时执行的命令

2. 把打好的jar包及Dockerfile文件上传到服务器

SpringBoot 项目发布部署,包含Linux部署及Docker部署

3. 构建Docker镜像

docker build -t springboot-02 .
  • springboot-02:为镜像名称,可改为对应的项目名称
  • .:命令最后有一个点符号,表示构建的目录为当前目录,即Dockerfile所在目录

构建完成后通过docker images去查看下这个镜像

SpringBoot 项目发布部署,包含Linux部署及Docker部署

4. 运行Docker容器

docker run -d -p 8081:8081 --name springboot-02 springboot-02
  • -d:后台运行
  • -p:端口映射,宿主机端口:容器端口
  • --name springboot-02:运行的容器名称
  • 最后的springboot-02:镜像的名称

运行成功后我们的项目在Docker中就部署完成了,线上服务器部署就是如此简单,但我们一般实际项目还会有一些jvm调优的参数,如初始运行内存、最大内存等。

转载自:https://juejin.cn/post/7248496133873860664
评论
请登录