Loading

Mac M1 docker打包x86平台平台镜像(解决m1打包的镜像在x86中不可用问题)

buildx

docker版本19.03之后添加 buildx , 可构建多架构镜像

构建

build时添加参数: buildx --platform=linux/amd64

docker buildx build --platform=linux/amd64 -t [image-name] .

查看镜像版本

docker inspect [image-name] | grep Arch

image

打包并推送至 docker 镜像仓库脚本, 以下以springboot为例

#!/usr/bin/env bash

# 删除已经生成的文件夹
rm -rf target
# 拼接镜像完整路径
version="latest"
path="registry.cn-beijing.aliyuncs.com/dev/test-service"
if [ -z $1 ]; then
  version="latest"
else
  version=$1
  path="registry.cn-beijing.aliyuncs.com/prod/test-service"
fi
# 输出镜像路径
echo '================================================================================================'
echo 'IMAGE: '$path
echo 'TAG: '${version}
echo '================================================================================================'
# 编译
mvn clean package -Dmaven.test.skip=true
# 生成amd64平台镜像
docker buildx build --platform=linux/amd64 -t ${path}:${version} .
docker push ${path}:${version}
docker rmi ${path}:${version}
echo '执行成功!' $(date "+%Y-%m-%d %H:%M:%S")

运行脚本

保存至项目目录中 文件名为: push-docker.sh, 赋予权限 chmod +x push-docker.sh (文件名可自己看心情更换)

  • 运行 $ ./push-docker.sh 则生成的镜像为: registry.cn-beijing.aliyuncs.com/dev/test-service:latest
  • 可带参运行 $ ./push-docker.sh 1.0.0 则生成的镜像为: registry.cn-beijing.aliyuncs.com/prod/test-service:1.0.0
posted @ 2022-10-14 17:11  辣子鸡炒蚌  阅读(2144)  评论(0编辑  收藏  举报