xianyu-auto-reply/quick-fix-permissions.bat
2025-07-24 12:05:21 +08:00

117 lines
2.6 KiB
Batchfile

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
:: 快速修复Docker权限问题 (Windows版本)
title 快速修复Docker权限问题
:: 颜色定义
set "RED=[91m"
set "GREEN=[92m"
set "YELLOW=[93m"
set "BLUE=[94m"
set "NC=[0m"
:print_info
echo %BLUE%[INFO]%NC% %~1
goto :eof
:print_success
echo %GREEN%[SUCCESS]%NC% %~1
goto :eof
:print_error
echo %RED%[ERROR]%NC% %~1
goto :eof
echo 🚀 快速修复Docker权限问题
echo ================================
echo.
:: 1. 停止容器
call :print_info "停止现有容器..."
docker-compose down >nul 2>&1
:: 2. 确保目录存在
call :print_info "创建必要目录..."
if not exist "data" mkdir data
if not exist "logs" mkdir logs
if not exist "backups" mkdir backups
:: 3. 检查并修复docker-compose.yml
call :print_info "检查docker-compose.yml配置..."
findstr /C:"user.*0:0" docker-compose.yml >nul 2>&1
if !errorlevel! neq 0 (
call :print_info "添加root用户配置..."
REM 备份原文件
copy docker-compose.yml docker-compose.yml.backup >nul
REM 创建临时文件添加user配置
(
for /f "tokens=*" %%a in (docker-compose.yml) do (
echo %%a
echo %%a | findstr /C:"container_name: xianyu-auto-reply" >nul
if !errorlevel! equ 0 (
echo user: "0:0"
)
)
) > docker-compose.yml.tmp
REM 替换原文件
move docker-compose.yml.tmp docker-compose.yml >nul
call :print_success "已配置使用root用户运行"
)
:: 4. 重新构建镜像
call :print_info "重新构建Docker镜像..."
docker-compose build --no-cache
if !errorlevel! neq 0 (
call :print_error "Docker镜像构建失败"
pause
exit /b 1
)
:: 5. 启动服务
call :print_info "启动服务..."
docker-compose up -d
if !errorlevel! neq 0 (
call :print_error "服务启动失败"
pause
exit /b 1
)
:: 6. 等待启动
call :print_info "等待服务启动..."
timeout /t 15 /nobreak >nul
:: 7. 检查状态
call :print_info "检查服务状态..."
docker-compose ps | findstr "Up" >nul
if !errorlevel! equ 0 (
call :print_success "✅ 服务启动成功!"
echo.
call :print_info "最近的日志:"
docker-compose logs --tail=10 xianyu-app
echo.
call :print_success "🎉 权限问题已修复!"
echo.
echo 访问信息:
echo Web界面: http://localhost:8080
echo 健康检查: http://localhost:8080/health
echo 默认账号: admin / admin123
) else (
call :print_error "❌ 服务启动失败"
echo.
call :print_info "错误日志:"
docker-compose logs xianyu-app
)
echo.
pause