docker buildx 实际应用 打nacos 的arm镜像

mac上打包arm和amd的docker镜像

由于实际集群部署了 arm 和 amd混合云主机, 所以需要打包对应架构的docker镜像给到云主机自动调配.

理解下整件事情先why

arm架构的机器应该是比较便宜一些, 所以就有了如上情况.

docker19 版本之后出现了build x 插件

可以利用docker这个插件, 再x86架构的机器上打包 arm架构的docker镜像了. 十分的方便.

整件事情的思路就是 对应指令集不同, 等于要有不同的基础镜像centos, 后面就是在这个操作系统上将自己的内容打包上去.

具体方法参考:

跨平台构建 Docker 镜像新姿势,x86、arm 一把梭
https://blog.csdn.net/alex_yangchuansheng/article/details/103146303?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4-103146303-blog-126701828.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4-103146303-blog-126701828.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=6

这边比较特殊的一个情况是, 还有一个特殊性就是实际的容器环境不是标准的k8s环境. 所以 采取了 打包成一个大镜像. 将SCA一整套服务打包成一整个镜像 给到使用.
所以采取了 nacos 2.0.1 作为基础镜像, 再将 gateway + 具体业务镜像加入. 这样就不用改代码了.

具体操作如下.

下载
https://github.com/nacos-group/nacos-docker/archive/refs/heads/master.zip

解压后导入到本地工程.
然后docker buildx 实际应用 打nacos 的arm镜像_第1张图片
1, 2 , 3 都是后面人为添加的.

2这个文件下载后解压成 1 这样导入到工程中.
2 的下载地址
https://github.com/alibaba/nacos/releases/download/2.0.1/nacos-server-2.0.1.tar.gz
下载极度不稳定, 各种加host也一定能成功, 解决方式就是用迅雷下载即可.

然后将dockerfile 修改 一些内容.

1, 填写自己所需要的nacos server 的版本
docker buildx 实际应用 打nacos 的arm镜像_第2张图片
2 这里注释掉, 通常是下载不下来的.

3 由于2的下载不到, 所以需要使用3 这里, 这里会将相对路径中的nacos 的整个目录放进来.
就是这个步骤通常一卡就是卡很久, 什么压缩包解压不了. 直接解压了放进来是最稳妥的方式.

最后一步就是使用buildx 打包.


mirror="xxx.com/xxx/nacos-arm"

tag="2.0.1"

echo 开始构建镜像...

docker buildx build -f ./Dockerfile --platform=linux/arm64 -t $mirror:$tag . 

echo "完成打包:$mirror:$tag"
date "+%Y-%m-%d %H:%M:%S"


这样本地就有nacos-arm的镜像了, 再在这个基础上, 往上添加其他镜像即可.

总体就是 在不同的 地基上盖楼. 这次就是从 --platform=linux/arm64 盖的 nacos 的楼.

你可能感兴趣的:(docker)