From b2dc9708eb806c8d39f9e3f7266be8d40421be8a Mon Sep 17 00:00:00 2001 From: aipper Date: Sat, 1 Nov 2025 15:26:17 +0800 Subject: [PATCH] test --- build-with-maven-proxy.sh | 95 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100755 build-with-maven-proxy.sh diff --git a/build-with-maven-proxy.sh b/build-with-maven-proxy.sh new file mode 100755 index 0000000..348e463 --- /dev/null +++ b/build-with-maven-proxy.sh @@ -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 \ No newline at end of file