mirror of
https://github.com/zhinianboke/xianyu-auto-reply.git
synced 2025-08-02 12:37:35 +08:00
146 lines
3.5 KiB
Bash
146 lines
3.5 KiB
Bash
#!/bin/bash
|
|
|
|
# 修复Docker部署警告的快速脚本
|
|
# 解决version过时和.env文件缺失问题
|
|
|
|
set -e
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
print_info() {
|
|
echo -e "${BLUE}[INFO]${NC} $1"
|
|
}
|
|
|
|
print_success() {
|
|
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
}
|
|
|
|
print_warning() {
|
|
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
}
|
|
|
|
print_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
echo "========================================"
|
|
echo " Docker部署警告修复脚本"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
# 1. 检查并创建.env文件
|
|
print_info "检查 .env 文件..."
|
|
if [ ! -f ".env" ]; then
|
|
if [ -f ".env.example" ]; then
|
|
print_info "从 .env.example 创建 .env 文件..."
|
|
cp .env.example .env
|
|
print_success ".env 文件已创建"
|
|
else
|
|
print_warning ".env.example 文件不存在"
|
|
print_info "创建基本的 .env 文件..."
|
|
cat > .env << 'EOF'
|
|
# 闲鱼自动回复系统 Docker 环境变量配置文件
|
|
|
|
# 基础配置
|
|
TZ=Asia/Shanghai
|
|
PYTHONUNBUFFERED=1
|
|
LOG_LEVEL=INFO
|
|
|
|
# 数据库配置
|
|
DB_PATH=/app/data/xianyu_data.db
|
|
|
|
# 服务配置
|
|
WEB_PORT=8080
|
|
|
|
# 安全配置
|
|
ADMIN_USERNAME=admin
|
|
ADMIN_PASSWORD=admin123
|
|
JWT_SECRET_KEY=xianyu-auto-reply-secret-key-2024
|
|
|
|
# 资源限制
|
|
MEMORY_LIMIT=512
|
|
CPU_LIMIT=0.5
|
|
MEMORY_RESERVATION=256
|
|
CPU_RESERVATION=0.25
|
|
|
|
# 自动回复配置
|
|
AUTO_REPLY_ENABLED=true
|
|
WEBSOCKET_URL=wss://wss-goofish.dingtalk.com/
|
|
HEARTBEAT_INTERVAL=15
|
|
TOKEN_REFRESH_INTERVAL=3600
|
|
EOF
|
|
print_success "基本 .env 文件已创建"
|
|
fi
|
|
else
|
|
print_success ".env 文件已存在"
|
|
fi
|
|
|
|
# 2. 检查docker-compose.yml版本问题
|
|
print_info "检查 docker-compose.yml 配置..."
|
|
if grep -q "^version:" docker-compose.yml 2>/dev/null; then
|
|
print_warning "发现过时的 version 字段"
|
|
print_info "移除 version 字段..."
|
|
|
|
# 备份原文件
|
|
cp docker-compose.yml docker-compose.yml.backup
|
|
|
|
# 移除version行
|
|
sed -i '/^version:/d' docker-compose.yml
|
|
sed -i '/^$/N;/^\n$/d' docker-compose.yml # 移除空行
|
|
|
|
print_success "已移除过时的 version 字段"
|
|
print_info "原文件已备份为 docker-compose.yml.backup"
|
|
else
|
|
print_success "docker-compose.yml 配置正确"
|
|
fi
|
|
|
|
# 3. 检查env_file配置
|
|
print_info "检查 env_file 配置..."
|
|
if grep -A1 "env_file:" docker-compose.yml | grep -q "required: false"; then
|
|
print_success "env_file 配置正确"
|
|
else
|
|
print_info "更新 env_file 配置为可选..."
|
|
|
|
# 备份文件(如果还没备份)
|
|
if [ ! -f "docker-compose.yml.backup" ]; then
|
|
cp docker-compose.yml docker-compose.yml.backup
|
|
fi
|
|
|
|
# 更新env_file配置
|
|
sed -i '/env_file:/,+1c\
|
|
env_file:\
|
|
- path: .env\
|
|
required: false' docker-compose.yml
|
|
|
|
print_success "env_file 配置已更新"
|
|
fi
|
|
|
|
# 4. 验证修复结果
|
|
print_info "验证修复结果..."
|
|
|
|
echo ""
|
|
print_info "测试 Docker Compose 配置..."
|
|
if docker-compose config >/dev/null 2>&1; then
|
|
print_success "Docker Compose 配置验证通过"
|
|
else
|
|
print_error "Docker Compose 配置验证失败"
|
|
echo "请检查 docker-compose.yml 文件"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
print_success "所有警告已修复!"
|
|
echo ""
|
|
print_info "现在可以正常使用以下命令:"
|
|
echo " docker-compose up -d # 启动服务"
|
|
echo " docker-compose ps # 查看状态"
|
|
echo " docker-compose logs -f # 查看日志"
|
|
echo ""
|
|
print_info "如果需要恢复原配置:"
|
|
echo " mv docker-compose.yml.backup docker-compose.yml"
|