#!/bin/bash echo "=== 直接修复 docker-compose.yml ===" echo DEPLOY_DIR="/root/server/archive" COMPOSE_FILE="$DEPLOY_DIR/docker-compose.yml" if [ ! -f "$COMPOSE_FILE" ]; then echo "❌ docker-compose.yml 文件不存在" echo "正在重新部署..." ./archive-manager.sh deploy -f exit 0 fi echo "📋 当前文件内容(前20行):" head -20 "$COMPOSE_FILE" echo echo "🔧 重新生成正确的 docker-compose.yml..." # 备份原文件 cp "$COMPOSE_FILE" "$COMPOSE_FILE.backup" # 生成正确的 docker-compose.yml cat > "$COMPOSE_FILE" << 'EOF' version: '3.8' services: # 主应用服务 app: image: digital-archive:fast 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 - DB_HOST=mysql - DB_PORT=3306 - DB_NAME=enterprise_digital_archives - DB_USERNAME=root - DB_PASSWORD=Abc@123456 - DB_DRIVER=com.mysql.cj.jdbc.Driver - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_PASSWORD=Abc123456 - ELASTICSEARCH_HOST=es - ELASTICSEARCH_PORT=9200 - ELASTICSEARCH_SCHEME=http - 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 echo "✅ docker-compose.yml 已重新生成" echo echo "🧪 测试新配置..." # 检测 Docker Compose 命令类型 if docker compose version &> /dev/null; then COMPOSE_CMD="docker compose" else COMPOSE_CMD="docker-compose" fi echo "使用命令: $COMPOSE_CMD" # 验证配置 if $COMPOSE_CMD -f "$COMPOSE_FILE" config --quiet 2>/dev/null; then echo "✅ 配置验证成功" else echo "❌ 配置验证失败,显示错误:" $COMPOSE_CMD -f "$COMPOSE_FILE" config echo echo "恢复备份文件..." mv "$COMPOSE_FILE.backup" "$COMPOSE_FILE" exit 1 fi echo echo "🚀 现在可以启动服务:" echo " ./archive-manager.sh start" echo echo "或直接使用:" echo " cd $DEPLOY_DIR && $COMPOSE_CMD up -d"