This commit is contained in:
2025-11-01 15:26:17 +08:00
parent fb590926e7
commit b2dc9708eb

95
build-with-maven-proxy.sh Executable file
View File

@@ -0,0 +1,95 @@
#!/bin/bash
# 使用Maven代理的构建脚本
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 项目信息
PROJECT_NAME="digital-archive"
VERSION="latest"
DOCKERFILE="Dockerfile"
# 处理参数
USE_OPTIMIZED=false
while [[ $# -gt 0 ]]; do
case $1 in
-o|--optimized)
USE_OPTIMIZED=true
DOCKERFILE="Dockerfile.optimized"
shift
;;
-h|--help)
echo "用法: $0 [选项]"
echo "选项:"
echo " -o, --optimized 使用优化的Dockerfile"
echo " -h, --help 显示帮助信息"
exit 0
;;
*)
shift
;;
esac
done
echo -e "${GREEN}=== 使用Maven代理构建数字档案系统 ===${NC}"
echo -e "${YELLOW}Dockerfile: ${DOCKERFILE}${NC}"
echo -e "${YELLOW}优化版本: ${USE_OPTIMIZED}${NC}"
# 检查Docker是否安装
if ! command -v docker &> /dev/null; then
echo -e "${RED}错误: Docker未安装${NC}"
exit 1
fi
# 检查settings.xml是否存在
if [ ! -f "settings.xml" ]; then
echo -e "${RED}错误: settings.xml文件不存在${NC}"
exit 1
fi
echo -e "${YELLOW}Maven配置文件:${NC}"
echo " - 使用国内镜像加速"
echo " - 阿里云Maven镜像"
echo " - 华为云Maven镜像"
echo " - 腾讯云Maven镜像"
echo " - 网易云Maven镜像"
# 构建Docker镜像
echo -e "${YELLOW}开始构建Docker镜像...${NC}"
docker build -f ${DOCKERFILE} -t ${PROJECT_NAME}:${VERSION} .
if [ $? -eq 0 ]; then
echo -e "${GREEN}Docker镜像构建成功: ${PROJECT_NAME}:${VERSION}${NC}"
else
echo -e "${RED}Docker镜像构建失败${NC}"
exit 1
fi
# 显示镜像信息
echo -e "${YELLOW}镜像信息:${NC}"
docker images | grep ${PROJECT_NAME}
# 显示镜像大小
echo -e "${YELLOW}镜像大小:${NC}"
docker images ${PROJECT_NAME}:${VERSION} --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
echo -e "${GREEN}构建完成!${NC}"
echo -e "${YELLOW}使用以下命令测试镜像:${NC}"
echo "docker run --rm -p 9081:9081 ${PROJECT_NAME}:${VERSION}"
# 可选:推送到镜像仓库
read -p "是否推送到镜像仓库? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
read -p "请输入镜像仓库地址: " REGISTRY
if [ ! -z "$REGISTRY" ]; then
docker tag ${PROJECT_NAME}:${VERSION} ${REGISTRY}/${PROJECT_NAME}:${VERSION}
docker push ${REGISTRY}/${PROJECT_NAME}:${VERSION}
echo -e "${GREEN}镜像已推送到: ${REGISTRY}/${PROJECT_NAME}:${VERSION}${NC}"
fi
fi