49 lines
1.4 KiB
Bash
49 lines
1.4 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# 构建多架构基础镜像脚本
|
||
|
|
# 支持 AMD64 (x86_64) 和 ARM64 (aarch64) 架构
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
echo "=========================================="
|
||
|
|
echo "构建多架构基础镜像"
|
||
|
|
echo "镜像名称: registry.t-aaron.com/hyf-backend-base:latest"
|
||
|
|
echo "支持架构: linux/amd64, linux/arm64"
|
||
|
|
echo "=========================================="
|
||
|
|
|
||
|
|
# 检查 Docker Buildx 是否可用
|
||
|
|
if ! docker buildx version &> /dev/null; then
|
||
|
|
echo "错误: Docker Buildx 不可用,请先安装 Docker Buildx"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 创建或使用 buildx builder
|
||
|
|
BUILDER_NAME="multiarch-builder"
|
||
|
|
if ! docker buildx inspect $BUILDER_NAME &> /dev/null; then
|
||
|
|
echo "创建新的 builder: $BUILDER_NAME"
|
||
|
|
docker buildx create --name $BUILDER_NAME --use
|
||
|
|
else
|
||
|
|
echo "使用现有的 builder: $BUILDER_NAME"
|
||
|
|
docker buildx use $BUILDER_NAME
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 启动 builder
|
||
|
|
docker buildx inspect --bootstrap
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "开始构建多架构镜像..."
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 构建并推送多架构镜像
|
||
|
|
docker buildx build \
|
||
|
|
--platform linux/amd64,linux/arm64 \
|
||
|
|
-f Dockerfile.base \
|
||
|
|
-t registry.t-aaron.com/hyf-backend-base:latest \
|
||
|
|
--push \
|
||
|
|
.
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=========================================="
|
||
|
|
echo "构建完成!"
|
||
|
|
echo "镜像已推送到: registry.t-aaron.com/hyf-backend-base:latest"
|
||
|
|
echo "支持的架构: AMD64, ARM64"
|
||
|
|
echo "=========================================="
|