Files
server/fix-compose-yaml.sh
2025-11-01 17:19:40 +08:00

111 lines
2.6 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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"