云原生---构建---发布---部署---Spring Boot Dubbo 微服务---K8S

云原生—构建—发布—部署—Spring Boot Dubbo 微服务—K8S

前置说明

上篇文章,通过 Kind和Helm 搭建了本地开发环境,部署了 Redis/Zookeeper/MySQL 服务,
本篇把本地开发的 Spring Boot Dubbo 微服务应用,一键构建打标发布镜像,并部署到 K8S.

一键构建打标发布镜像

拉镜像

runImage and builder

paketobuildpacks/run:base-cnb
paketobuildpacks/builder:base
pullPolicy = "IF_NOT_PRESENT"
runImage = "paketobuildpacks/run:base-cnb"
builder = "paketobuildpacks/builder:base"

打标镜像

imageName

imageName = "registry.cn-shenzhen.aliyuncs.com/uid13/${
     project.name}:${
     project.version}"

发布镜像到 Aliyun

docker {
   
    publishRegistry {
   
        url = "registry.cn-shenzhen.aliyuncs.com"
        username = "你的账号"
        password = "你的密码"
    }
}
publish = true

备注

若不想发布,直接在 K8S 用,则执行 
kind load docker-image demo-app:1.0-SNAPSHOT --name default

Dependency Mappings

构建镜像,默认会下载:
https://github.com/bell-sw/Liberica/releases/download/17.0.1+12/bellsoft-jre17.0.1+12-linux-amd64.tar.gz
https://github.com/anchore/syft/releases/download/v0.33.0/syft_0.33.0_linux_amd64.tar.gz
https://repo.spring.io/release/org/springframework/cloud/spring-cloud-bindings/1.8.0/spring-cloud-bindings-1.8.0.jar

在国内,这些文件是需要科学上网才能成功下载的,而 CNB(Cloud Native Builder) 提供了 Dependency Mappings 改变下载地址.

file 协议,从本地下载

创建自定义目录结构

PS D:\IdeaProjects\reproduce-demo> tree /f cnb
卷 Data 的文件夹 PATH 列表
卷序列号为 000000BD EE47:E3A1
D:\IDEAPROJECTS\REPRODUCE-DEMO\CNB
└─bindings
    ├─binary
    │      bellsoft-jre17.0.1+12-linux-amd64.tar.gz
    │      spring-cloud-bindings-1.8.0.jar
    │      syft_0.33.0_linux_amd64.tar.gz
    │
    └─mapping
            3ac79e13f80582bb2289ded782d1d43aafcb7041be08cc9f2e8796b4f3f6262d
            9b937fe5dfe37547cef0b5952f38ef098d8cb6307763e4c4036eff315614bb93
            c75ef3152817c28c7049d7e0052dfba3ed461a7151984e594b656c0be927888e
            type
科学上网下载放入 cnb/bindings/binary,mapping 下创建 type 文件,内容为 dependency-mapping

获取 sha256Hex

import cn.hutool.core.io.FileUtil;
import cn.hutool.crypto.digest.DigestUtil;
import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.util.List;

@Slf4j
public class PrintData {
   
    public static void main(String[] args) {
   
        String path = "D:\\IdeaProjects\\reproduce-demo\\cnb\\bindings\\binary";
        List<File> files = FileUtil.loopFiles(path);

        files.forEach(file -> {
   
            String sha256Hex = DigestUtil.sha256Hex(file);
            log.info("File: {}, sha256Hex: {} \n", file.getName(), sha256Hex);
        });
    }
}
14:14:11.031 [main] INFO com.lab.util.PrintData - File: bellsoft-jre17.0.1+12-linux-amd64.tar.gz, sha256Hex: 9b937fe5dfe37547cef0b5952f38ef098d8cb6307763e4c4036eff315614bb93 

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值