Files
2026-01-15 17:30:48 +00:00

84 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# 重新构建所有 Agent 镜像并推送到 ACR (ARM64)
set -e
ACR_NAME="agnettaiji.azurecr.io"
TAG="latest"
PLATFORM="linux/arm64"
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE} 重新构建所有 Agent 镜像${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""
# 登录 ACR
echo -e "${GREEN}登录 ACR...${NC}"
az acr login --name $(echo ${ACR_NAME} | cut -d'.' -f1)
# Agent 列表
declare -a AGENTS=(
"search-agent:search_agent.Dockerfile"
"jina-search-agent:jina_search_agent.Dockerfile"
"mysql-agent:mysql_agent.Dockerfile"
"postgresql-agent:postgresql_agent.Dockerfile"
"azure-blob-agent:azure_blob_agent.Dockerfile"
)
SUCCESS=0
FAILED=0
for item in "${AGENTS[@]}"; do
IFS=':' read -r name dockerfile <<< "$item"
image="${ACR_NAME}/ai-agents/${name}:${TAG}"
echo ""
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE}构建: ${name}${NC}"
echo -e "${BLUE}========================================${NC}"
echo "镜像: ${image}"
echo "平台: ${PLATFORM}"
echo ""
if docker buildx build --platform ${PLATFORM} \
-f ${dockerfile} \
-t ${image} \
--push \
. ; then
echo -e "${GREEN}✅ ${name} 构建成功${NC}"
((SUCCESS++))
else
echo -e "${RED}❌ ${name} 构建失败${NC}"
((FAILED++))
fi
done
echo ""
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE} 构建总结${NC}"
echo -e "${BLUE}========================================${NC}"
echo -e "${GREEN}成功: ${SUCCESS}${NC}"
echo -e "${RED}失败: ${FAILED}${NC}"
echo ""
if [ ${FAILED} -eq 0 ]; then
echo -e "${GREEN}✅ 所有镜像构建成功!${NC}"
echo ""
echo "已推送的镜像:"
for item in "${AGENTS[@]}"; do
IFS=':' read -r name _ <<< "$item"
echo " - ${ACR_NAME}/ai-agents/${name}:${TAG}"
done
else
echo -e "${RED}❌ 部分镜像构建失败${NC}"
exit 1
fi