#!/bin/bash # 数字档案系统构建脚本 set -e # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 项目信息 PROJECT_NAME="digital-archive" JAR_NAME="point-strategy" VERSION="latest" echo -e "${GREEN}开始构建数字档案系统...${NC}" # 检查Docker Compose是否安装 if ! docker compose version &> /dev/null && ! command -v docker-compose &> /dev/null; then echo -e "${RED}错误: Docker Compose未安装${NC}" exit 1 fi # 检测Docker Compose命令类型 if docker compose version &> /dev/null; then COMPOSE_CMD="docker compose" else COMPOSE_CMD="docker-compose" fi echo -e "${YELLOW}使用命令: ${COMPOSE_CMD}${NC}" # 构建Docker镜像 echo -e "${YELLOW}构建Docker镜像...${NC}" docker build -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 # 可选:运行测试 if [ "$1" = "--test" ]; then echo -e "${YELLOW}运行测试...${NC}" ${COMPOSE_CMD} -f docker-compose.test.yml up --abort-on-container-exit --exit-code-from test fi # 可选:推送到镜像仓库 if [ "$1" = "--push" ]; then echo -e "${YELLOW}推送到镜像仓库...${NC}" docker tag ${PROJECT_NAME}:${VERSION} your-registry.com/${PROJECT_NAME}:${VERSION} docker push your-registry.com/${PROJECT_NAME}:${VERSION} fi echo -e "${GREEN}构建完成!${NC}" echo -e "${YELLOW}使用 ./deploy.sh <部署目录> 来部署服务${NC}" # 显示镜像信息 echo -e "${YELLOW}镜像信息:${NC}" docker images | grep ${PROJECT_NAME}