Baseline: pr1 HYC下载站 v2.3 before security/functional fixes
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
# ============================================
|
||||
# HYC下载站 v2.3 - 多架构 Docker 构建脚本
|
||||
# 支持: amd64, arm64, arm/v7, i386
|
||||
# ============================================
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
VERSION=${1:-v2.3}
|
||||
REGISTRY=${2:-hyc-download-station}
|
||||
TAG=${3:-$VERSION}
|
||||
|
||||
# 支持的平台
|
||||
PLATFORMS="linux/amd64,linux/arm64,linux/arm/v7,linux/386"
|
||||
|
||||
echo "========================================"
|
||||
echo " HYC下载站 v2.3 - 多架构构建"
|
||||
echo "========================================"
|
||||
echo " 版本: $TAG"
|
||||
echo " 平台: $PLATFORMS"
|
||||
echo
|
||||
|
||||
# 检查 Docker
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo -e "${RED}✗ Docker 未安装${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 BuildX
|
||||
if ! docker buildx version &> /dev/null; then
|
||||
echo -e "${YELLOW}⚠ Docker BuildX 未安装,尝试安装...${NC}"
|
||||
docker buildx install || true
|
||||
fi
|
||||
|
||||
# 创建构建器
|
||||
echo "[1/4] 创建构建器..."
|
||||
docker buildx rm hyc-builder 2>/dev/null || true
|
||||
docker buildx create \
|
||||
--name hyc-builder \
|
||||
--platform $PLATFORMS \
|
||||
--use
|
||||
|
||||
# 引导构建器
|
||||
echo "[2/4] 引导构建器..."
|
||||
docker buildx inspect --bootstrap
|
||||
|
||||
# 构建镜像
|
||||
echo "[3/4] 构建镜像..."
|
||||
echo " 构建中,请稍候..."
|
||||
|
||||
START_TIME=$(date +%s)
|
||||
|
||||
docker buildx build \
|
||||
--platform $PLATFORMS \
|
||||
--tag "$REGISTRY:$TAG" \
|
||||
--tag "$REGISTRY:latest" \
|
||||
--push \
|
||||
--file docker/Dockerfile.multiarch \
|
||||
.
|
||||
|
||||
END_TIME=$(date +%s)
|
||||
BUILD_TIME=$((END_TIME - START_TIME))
|
||||
|
||||
echo -e "${GREEN}✓ 构建完成 (${BUILD_TIME}秒)${NC}"
|
||||
|
||||
# 推送清单
|
||||
echo "[4/4] 创建清单..."
|
||||
docker manifest create "$REGISTRY:$TAG" \
|
||||
"$REGISTRY:$TAG-amd64" \
|
||||
"$REGISTRY:$TAG-arm64" \
|
||||
"$REGISTRY:$TAG-arm-v7" \
|
||||
"$REGISTRY:$TAG-386" 2>/dev/null || true
|
||||
|
||||
docker manifest push "$REGISTRY:$TAG" || true
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
echo -e "${GREEN}✓ 多架构构建完成${NC}"
|
||||
echo "========================================"
|
||||
echo
|
||||
echo "镜像标签:"
|
||||
echo " - $REGISTRY:$TAG"
|
||||
echo " - $REGISTRY:latest"
|
||||
echo
|
||||
echo "推送到仓库:"
|
||||
echo " docker pull $REGISTRY:$TAG"
|
||||
echo
|
||||
Reference in New Issue
Block a user