test
This commit is contained in:
95
build-with-maven-proxy.sh
Executable file
95
build-with-maven-proxy.sh
Executable 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
|
||||||
Reference in New Issue
Block a user