阿里云服务器宝塔面板部署SpringBoot项目

  • 前置
  • 服务器
  • 宝塔安装
  • JDK镜像
  • JDK
  • 下载8版本的JDK
  • JAVA安装及环境配置
  • 解压
  • 配置
  • SpringBoot项目的打包上传部署
  • 打包
  • 上传
  • 部署
  • 生成镜像
  • 查看镜像
  • 启动镜像
  • 查看容器启动情况
  • 补充
  • 删除镜像或容器
  • 第一种
  • 第二种
  • 如果内存使用过大的话
  • 报错


前置

JDK
阿里云的服务器
SpringBoot项目

服务器

先在服务器开启某一个端口,后面会根据这个端口访问你的网站

启动宝塔安装的redis 宝塔启动springboot_启动宝塔安装的redis

宝塔安装

注册登录 宝塔主页

启动宝塔安装的redis 宝塔启动springboot_spring boot_02


安装套件默认就行

启动宝塔安装的redis 宝塔启动springboot_阿里云_03


等待安装完成后先别关闭,要记录信息(时间根据自己的网速决定,我的用了26分钟)

这种就是安装好了,记得保存信息,只提供一次(如果忘记翻看最后补充内容)

启动宝塔安装的redis 宝塔启动springboot_docker_04


输入网址登录后是这种界面就证明宝塔界面安装好了,可视化面板

启动宝塔安装的redis 宝塔启动springboot_docker_05

软件商店安装这些软件

启动宝塔安装的redis 宝塔启动springboot_docker_06

JDK镜像

终端输入命令

这里先别急,先执行第一行,等pull完了,看看镜像名是openjdk和版本TAG是latest就行了,后面那句不记得我有没有执行了

启动宝塔安装的redis 宝塔启动springboot_docker_07

docker pull openjdk

docker pull openjdk:8u201-jdk-alpine

可以先跳过下面的JDK部分,如果不行再回来安装JDK(不麻烦)

JDK

下载8版本的JDK

JDK下载(百度网盘)(185M))(提取码1003)

JAVA安装及环境配置

解压

启动宝塔安装的redis 宝塔启动springboot_spring boot_08

配置

终端输入命令,选择Edit模式(输入E)

vi /etc/profile

在最后添加下面的代码块(根据自己的jdk路径修改)
Ins进入插入模式
插入之后先按ESC,再输入:wq就可以保存退出了

export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_241
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

立即生效配置

source /etc/profile

终端查看JAVA版本

启动宝塔安装的redis 宝塔启动springboot_阿里云_09


如果出现无权限报错(-bash: /usr/lib/jdk/jdk1.8.0_241/bin/java: Permission denied-bash: /usr/lib/jdk/jdk1.8.0_241/bin/java: Permission denied),可以使用

chmod +x /usr/java/jdk1.8.0_241/bin/java
chmod +x /usr/java/jdk1.8.0_241/bin/javac

这个解决办法

SpringBoot项目的打包上传部署

打包

启动宝塔安装的redis 宝塔启动springboot_阿里云_10

上传

启动宝塔安装的redis 宝塔启动springboot_服务器_11


启动宝塔安装的redis 宝塔启动springboot_阿里云_12


启动宝塔安装的redis 宝塔启动springboot_启动宝塔安装的redis_13


启动宝塔安装的redis 宝塔启动springboot_服务器_14


启动宝塔安装的redis 宝塔启动springboot_spring boot_15


www/demo是我的上传的jar存放路径

启动宝塔安装的redis 宝塔启动springboot_启动宝塔安装的redis_16


把jar包拖进去,等待上传

启动宝塔安装的redis 宝塔启动springboot_服务器_17


编写Dockerfile文件

启动宝塔安装的redis 宝塔启动springboot_服务器_18


新建Dockerfile文件,具体语法不太清楚,可以百度专门的介绍

# 基础镜像
FROM openjdk:latest

# 作者信息
MAINTAINER achong

# 将当前目录下的jar包复制到容器里(xq-0.0.1-SNAPSHOT.jar修改为你的jar包名字)
COPY *.jar  /xq-0.0.1-SNAPSHOT.jar

#设置时区
#RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo ‘Asia/Shanghai’ >/etc/timezone

# 提示当前项目在容器运行的端口
CMD ["========server.port = 8080=========="]

# 暴露运行的端口
EXPOSE 8080

# 执行jar包
ENTRYPOINT ["java","-jar","/xq-0.0.1-SNAPSHOT.jar"]

编辑完了记得点击右上角的更新同步按钮

启动宝塔安装的redis 宝塔启动springboot_spring boot_19

部署

启动宝塔安装的redis 宝塔启动springboot_spring boot_20

生成镜像

# docker build -t 镜像名称:标签名 .
docker build -t demo:v1 .

我的执行过程

启动宝塔安装的redis 宝塔启动springboot_docker_21

查看镜像

dockers images

启动宝塔安装的redis 宝塔启动springboot_服务器_22

启动镜像

这行命令的解释可以自己查查

docker run --name demo --restart=always -d -p 8080:8080 demo:v1

这种就是部署好了

启动宝塔安装的redis 宝塔启动springboot_docker_23

查看容器启动情况

docker ps

启动宝塔安装的redis 宝塔启动springboot_docker_24


在Docker界面可以看到容器已经启动成功了

启动宝塔安装的redis 宝塔启动springboot_服务器_25


大功告成,可以使用ip地址加端口访问了(三天,搞了三天)

加域名访问的话还没开始,因为我域名还没备案,不让我解析

启动宝塔安装的redis 宝塔启动springboot_docker_26

补充

删除镜像或容器

第一种

docker rmi 镜像ID(可使用docker images查看镜像ID)

第二种

启动宝塔安装的redis 宝塔启动springboot_服务器_27

如果内存使用过大的话

可以在阿里云实例那里重置云盘或者更换操作系统

启动宝塔安装的redis 宝塔启动springboot_spring boot_28

报错

这个错误真的折磨人

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/JarLauncher has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

这种是版本错误,可以重新安装jdk,我是通过安装我本地的jdk上去,再docker pull openjdk后重新docker build …,docker run …才可以的