更新后端方式

一. 下载安装并启用dockerx

  1. 开启实验性特性(已下载windows端desktop版或linux端desktop版无需执行)
# 开启客户端实验性特性
vim ~/.docker/config.json
# 添加json条目:
"experimental": "enabled"
# 开启服务端实验性特性
vim /etc/docker/daemon.json
# 添加json条目:
"experimental": true
# 重新加载
systemctl daemon-reload
systemctl restart docker
# 确认开启
docker version
  1. 下载机器对应的二进制安装包https://github.com/docker/buildx/releases/tag/v0.8.2,执行下列代码(已下载windows端desktop版或linux端desktop版无需执行)
# 配置
mkdir -p ~/.docker/cli-plugins
mv buildx-v0.8.2.linux-xxx ~/.docker/cli-plugins/docker-buildx
chmod +x ~/.docker/cli-plugins/docker-buildx
# 确认安装成功
docker buildx version
  1. 安装模拟器
# 查看是否已经安装模拟器
docker buildx ls
# 安装
docker run --privileged --rm tonistiigi/binfmt --install all
# 验证
docker buildx ls

二. 更新后端

  1. 首先从orcale官网下载jdk8的包https://www.oracle.com/java/technologies/downloads/下载jdk-8u341-linux-aarch64.tar
  2. 尝试解压,查看解压后的文件夹名字
  3. maven package包,取消test部分
  4. 在项目根目录下编写Dockerfile文件如下:(请修改下面的your_name,your_ziped_file_name,your_unziped_directory_name,your_package_location)
#!/bin/bash
# 使用Ubuntu作为基础镜像
FROM arm64v8/ubuntu:latest
 
# 维护人信息
MAINTAINER ethereal(your_name)
 
# 切换到usr/local 目录下
WORKDIR ./usr/local
 
# 创建jdk目录
RUN mkdir jdk
 
# 对jdk赋权
RUN chmod 777 /usr/local/jdk
 
# 将下载的jdk 的压缩包拷贝到镜像中,注意 ADD和COPY的区别,ADD 会解压,COPY不会解压
ADD jdk-8u341-linux-aarch64.tar(your_ziped_file_name) /usr/local/jdk
 
# 设置JAVA_HOME 的环境变量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_341(your_unziped_directory_name)
 
# 设置JAVA 环境
ENV CLASSPATH=$JAVA_HOME/bin:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
 
# 将java可执行文件设置到PATH中,这样就可以使用java命令了
ENV PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

# 导入springboot包
COPY ./target/backend-0.0.1-SNAPSHOT.jar(your_package_location) /app/spring-boot-k8s-app.jar

# 设置镜像入口
ENTRYPOINT ["java", "-jar" , "/app/spring-boot-k8s-app.jar"]
  1. 终端中执行(确保docker daemon开启)(修改下面的image_name)
docker buildx build --platform arm64 -f Dockerfile -t jdk1.8(image_name) .
  1. 查看image得到imageID
docker images
  1. 打tag
docker tag <imageID> registry.cn-shanghai.aliyuncs.com/ethereal-o/docker:v1(your_remote_hub_name:versionID)
  1. 推送到远程仓库(需要先登陆)
docker push registry.cn-shanghai.aliyuncs.com/ethereal-o/docker:v1(your_remote_hub_name:versionID)
  1. 在服务器上以root身份执行
# 删除原镜像
crictl img
crictl rmi javabackend.io/springboot:v1
# 拉取新镜像
crictl pull --creds username:[password] registry.cn-shanghai.aliyuncs.com/ethereal-o/docker:v1(your_remote_hub_name:versionID)
# 修改tag
ctr -n k8s.io i tag registry.cn-shanghai.aliyuncs.com/ethereal-o/docker:v1(你的镜像仓库名字:版本号) javabackend.io/springboot:v1(这个别改)
  1. 修改springboot.yaml文件中image内容,与上述一致,然后应用
cd ~/k8s/yaml/springboot
vim springboot.yaml
kubectl apply -f springboot.yaml
  1. 删除所有springboot pod(其会自动部署)
kubectl get pods
kubectl delete pod <podname>
  1. 验证
# 获取pod
kubectl get pods
# pod应该立即处于running状态,并过一段时间重新执行此命令不会崩溃
# 如果崩溃,或者处于其他状态
# 查看pod详细信息
kubetcl describe pod <podname>
# 查看pod的log,仅限未崩溃状态才能使用
kubectl logs <podname>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值