阿里云服务器宝塔面板部署SpringBoot项目
- 前置
- 服务器
- 宝塔安装
- JDK镜像
- JDK
- 下载8版本的JDK
- JAVA安装及环境配置
- 解压
- 配置
- SpringBoot项目的打包上传部署
- 打包
- 上传
- 部署
- 生成镜像
- 查看镜像
- 启动镜像
- 查看容器启动情况
- 补充
- 删除镜像或容器
- 第一种
- 第二种
- 如果内存使用过大的话
- 报错
前置
JDK
阿里云的服务器
SpringBoot项目
服务器
先在服务器开启某一个端口,后面会根据这个端口访问你的网站
宝塔安装
注册登录 宝塔主页
安装套件默认就行
等待安装完成后先别关闭,要记录信息(时间根据自己的网速决定,我的用了26分钟)
这种就是安装好了,记得保存信息,只提供一次(如果忘记翻看最后补充内容)
输入网址登录后是这种界面就证明宝塔界面安装好了,可视化面板
软件商店安装这些软件
JDK镜像
终端输入命令
这里先别急,先执行第一行,等pull完了,看看镜像名是openjdk和版本TAG是latest就行了,后面那句不记得我有没有执行了
docker pull openjdk
docker pull openjdk:8u201-jdk-alpine
可以先跳过下面的JDK部分,如果不行再回来安装JDK(不麻烦)
JDK
下载8版本的JDK
JDK下载(百度网盘)(185M))(提取码1003)
JAVA安装及环境配置
解压
配置
终端输入命令,选择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版本
如果出现无权限报错(-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项目的打包上传部署
打包
上传
www/demo是我的上传的jar存放路径
把jar包拖进去,等待上传
编写Dockerfile文件
新建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"]
编辑完了记得点击右上角的更新同步按钮
部署
生成镜像
# docker build -t 镜像名称:标签名 .
docker build -t demo:v1 .
我的执行过程
查看镜像
dockers images
启动镜像
这行命令的解释可以自己查查
docker run --name demo --restart=always -d -p 8080:8080 demo:v1
这种就是部署好了
查看容器启动情况
docker ps
在Docker界面可以看到容器已经启动成功了
大功告成,可以使用ip地址加端口访问了(三天,搞了三天)
加域名访问的话还没开始,因为我域名还没备案,不让我解析
补充
删除镜像或容器
第一种
docker rmi 镜像ID(可使用docker images查看镜像ID)
第二种
如果内存使用过大的话
可以在阿里云实例那里重置云盘或者更换操作系统
报错
这个错误真的折磨人
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 …才可以的