This commit is contained in:
2025-11-01 14:57:14 +08:00
parent a1e2bea798
commit 68d434e3c4
8 changed files with 589 additions and 96 deletions

103
deploy.sh
View File

@@ -29,12 +29,21 @@ if ! command -v docker &> /dev/null; then
fi
# 检查Docker Compose是否安装
if ! command -v docker-compose &> /dev/null; then
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}"
echo -e "${GREEN}开始部署数字档案系统到 ${DEPLOY_DIR}...${NC}"
echo -e "${YELLOW}提示: 可以先运行 ./pre-deploy-check.sh ${DEPLOY_DIR} 进行部署前检查${NC}"
# 检查镜像是否存在
if ! docker images | grep -q ${PROJECT_NAME}; then
@@ -42,9 +51,9 @@ if ! docker images | grep -q ${PROJECT_NAME}; then
exit 1
fi
# 创建部署目录
# 创建必要的目录
echo -e "${YELLOW}创建部署目录...${NC}"
mkdir -p ${DEPLOY_DIR}/{data/{upload,temp,unzip,images,reports,database,redis,elasticsearch},logs,nginx}
mkdir -p ${DEPLOY_DIR}/{data/{upload,temp,unzip,images,reports},logs,nginx}
# 复制配置文件
echo -e "${YELLOW}复制配置文件...${NC}"
@@ -59,12 +68,13 @@ COMPOSE_PROJECT_NAME=digital-archive
SERVER_PORT=9081
SERVER_CONTEXT_PATH=/point-strategy
# 数据库配置
DB_HOST=database
DB_PORT=54321
# MySQL数据库配置
DB_HOST=mysql
DB_PORT=3306
DB_NAME=enterprise_digital_archives
DB_USERNAME=system
DB_PASSWORD=12345678ab
DB_USERNAME=root
DB_PASSWORD=Abc@123456
DB_DRIVER=com.mysql.jdbc.Driver
# Redis配置
REDIS_HOST=redis
@@ -120,16 +130,24 @@ cat > ${DEPLOY_DIR}/start.sh << 'EOF'
#!/bin/bash
# 启动数字档案系统
echo "启动数字档案系统..."
docker-compose up -d
# 检测Docker Compose命令类型
if docker compose version &> /dev/null; then
COMPOSE_CMD="docker compose"
else
COMPOSE_CMD="docker-compose"
fi
${COMPOSE_CMD} up -d
echo "等待服务启动..."
sleep 30
echo "检查服务状态..."
docker-compose ps
${COMPOSE_CMD} ps
echo "查看应用日志..."
docker-compose logs -f app
${COMPOSE_CMD} logs -f app
EOF
# 创建停止脚本
@@ -137,7 +155,15 @@ cat > ${DEPLOY_DIR}/stop.sh << 'EOF'
#!/bin/bash
# 停止数字档案系统
echo "停止数字档案系统..."
docker-compose down
# 检测Docker Compose命令类型
if docker compose version &> /dev/null; then
COMPOSE_CMD="docker compose"
else
COMPOSE_CMD="docker-compose"
fi
${COMPOSE_CMD} down
echo "清理未使用的镜像和容器..."
docker system prune -f
@@ -147,14 +173,23 @@ EOF
cat > ${DEPLOY_DIR}/update.sh << 'EOF'
#!/bin/bash
# 更新数字档案系统
echo "更新数字档案系统..."
# 检测Docker Compose命令类型
if docker compose version &> /dev/null; then
COMPOSE_CMD="docker compose"
else
COMPOSE_CMD="docker-compose"
fi
echo "停止服务..."
docker-compose down
${COMPOSE_CMD} down
echo "拉取最新镜像..."
docker-compose pull
${COMPOSE_CMD} pull
echo "启动服务..."
docker-compose up -d
${COMPOSE_CMD} up -d
echo "清理旧镜像..."
docker image prune -f
@@ -184,11 +219,8 @@ services:
- ./logs:/app/logs
env_file:
- .env
depends_on:
- database
- redis
networks:
- archive-network
- proxy
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9081/point-strategy/actuator/health"]
@@ -197,36 +229,9 @@ services:
retries: 3
start_period: 60s
database:
image: kingbase:v8.6.0
container_name: digital-archive-db
ports:
- "54321:54321"
environment:
- KINGBASE_USER=system
- KINGBASE_PASSWORD=12345678ab
- KINGBASE_DATABASE=enterprise_digital_archives
volumes:
- ./data/database:/var/lib/kingbase/data
networks:
- archive-network
restart: unless-stopped
redis:
image: redis:6-alpine
container_name: digital-archive-redis
ports:
- "6379:6379"
command: redis-server --requirepass Abc123456
volumes:
- ./data/redis:/data
networks:
- archive-network
restart: unless-stopped
networks:
archive-network:
driver: bridge
proxy:
external: true
EOF
echo -e "${GREEN}部署完成!${NC}"
@@ -235,7 +240,7 @@ echo -e "${YELLOW}可用命令:${NC}"
echo " 启动服务: cd ${DEPLOY_DIR} && ./start.sh"
echo " 停止服务: cd ${DEPLOY_DIR} && ./stop.sh"
echo " 更新服务: cd ${DEPLOY_DIR} && ./update.sh"
echo " 查看状态: cd ${DEPLOY_DIR} && docker-compose ps"
echo " 查看状态: cd ${DEPLOY_DIR} && ./start.sh 或 docker-compose ps"
echo " 查看日志: cd ${DEPLOY_DIR} && docker-compose logs -f app"
echo ""
echo -e "${YELLOW}访问地址: http://localhost:9081/point-strategy${NC}"