diff --git a/archive-manager.sh b/archive-manager.sh index 1d81e09..82b817c 100755 --- a/archive-manager.sh +++ b/archive-manager.sh @@ -197,17 +197,86 @@ deploy_app() { log_info "部署应用到: $deploy_dir" + # 确定要使用的镜像版本 + if [ "$FAST_BUILD" = true ]; then + VERSION="fast" + log_info "使用快速构建版本: ${PROJECT_NAME}:fast" + else + VERSION="stable" + log_info "使用完整构建版本: ${PROJECT_NAME}:stable" + fi + # 检查镜像 - if ! docker images | grep -q ${PROJECT_NAME}; then - log_error "镜像不存在,请先构建: $0 build" + if ! docker images | grep -q "${PROJECT_NAME}:${VERSION}"; then + log_error "镜像 ${PROJECT_NAME}:${VERSION} 不存在,请先构建: $0 build" + if [ "$FAST_BUILD" = true ]; then + log_error "或使用: $0 build -f" + fi exit 1 fi # 创建部署目录 mkdir -p "$deploy_dir"/{data/{upload,temp,unzip,images,reports,elasticsearch},logs,nginx} - # 复制配置文件 - cp docker-compose.simple.yml "$deploy_dir/docker-compose.yml" + # 动态生成 docker-compose.yml 文件 + cat > "$deploy_dir/docker-compose.yml" << EOF +version: '3.8' + +services: + # 主应用服务 + app: + image: ${PROJECT_NAME}:${VERSION} + container_name: digital-archive-app + ports: + - "9081:9081" + volumes: + - ./data/upload:/app/data/upload + - ./data/temp:/app/data/temp + - ./data/unzip:/app/data/unzip + - ./data/images:/app/data/images + - ./data/reports:/app/data/reports + - ./logs:/app/logs + environment: + - SPRING_PROFILES_ACTIVE=prod + - SERVER_PORT=9081 + # MySQL数据库配置 + - DB_HOST=mysql + - DB_PORT=3306 + - DB_NAME=enterprise_digital_archives + - DB_USERNAME=root + - DB_PASSWORD=Abc@123456 + - DB_DRIVER=com.mysql.jdbc.Driver + # Redis配置 + - REDIS_HOST=redis + - REDIS_PORT=6379 + - REDIS_PASSWORD=Abc123456 + # Elasticsearch配置 - 使用已有的 "es" 容器 + - ELASTICSEARCH_HOST=es + - ELASTICSEARCH_PORT=9200 + - ELASTICSEARCH_SCHEME=http + # OCR配置 + - TESS_PATH=/usr/bin/tesseract + # 其他配置 + - SWAGGER_SHOW=false + - LOG_ROOT_LEVEL=info + - LOG_APP_LEVEL=info + networks: + - proxy + restart: unless-stopped + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9081/point-strategy/actuator/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + +# Elasticsearch - 使用已有的 "es" 容器 + # 注意:确保已有的 "es" 容器已连接到 proxy 网络 + +networks: + proxy: + external: true +EOF # 创建环境配置 cat > "$deploy_dir/.env" << EOF diff --git a/quick-deploy.sh b/quick-deploy.sh new file mode 100755 index 0000000..504cba1 --- /dev/null +++ b/quick-deploy.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# 快速部署脚本 +echo "🚀 快速部署数字档案系统..." +echo "使用快速构建版本 (digital-archive:fast)" +echo + +# 使用 archive-manager.sh 的快速部署模式 +./archive-manager.sh deploy -f + +if [ $? -eq 0 ]; then + echo + echo "✅ 快速部署完成!" + echo + echo "📋 下一步操作:" + echo " ./archive-manager.sh start -f # 启动服务" + echo " ./archive-manager.sh logs # 查看日志" + echo " ./archive-manager.sh status # 检查状态" + echo + echo "🌐 访问地址:" + echo " http://localhost:9081/point-strategy" + echo " http://localhost:9081/point-strategy/swagger-ui.html" +else + echo + echo "❌ 快速部署失败" + echo "请检查错误信息或先构建镜像: ./quick-build.sh" +fi \ No newline at end of file