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

 打包并推送至 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
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐