@echo off chcp 65001 >nul title ETest-LIMS Docker Fix color 0B echo ======================================== echo ETest-LIMS Docker Deployment Fix echo ======================================== echo. :: Check admin rights net session >nul 2>&1 if %errorlevel% neq 0 ( echo [!] Administrator privileges required echo [*] Requesting admin rights... echo. powershell -Command "Start-Process '%~f0' -Verb RunAs" exit /b ) echo [OK] Running with administrator privileges echo. :: Check Docker echo [1/5] Checking Docker... docker info >nul 2>&1 if %errorlevel% neq 0 ( echo [!] Docker is not running echo [*] Please start Docker Desktop first pause exit /b 1 ) echo [OK] Docker is running echo. :: Configure mirror echo [2/5] Configuring Docker mirror... set "DOCKER_CONFIG=%USERPROFILE%\.docker" if not exist "%DOCKER_CONFIG%" mkdir "%DOCKER_CONFIG%" :: Backup existing config if exist "%DOCKER_CONFIG%\daemon.json" ( copy /Y "%DOCKER_CONFIG%\daemon.json" "%DOCKER_CONFIG%\daemon.json.backup.%date:~0,4%%date:~5,2%%date:~8,2%" >nul echo [OK] Original config backed up ) :: Write new config echo {> "%DOCKER_CONFIG%\daemon.json" echo "registry-mirrors": [>> "%DOCKER_CONFIG%\daemon.json" echo "https://docker.mirrors.ustc.edu.cn",>> "%DOCKER_CONFIG%\daemon.json" echo "https://hub-mirror.c.163.com",>> "%DOCKER_CONFIG%\daemon.json" echo "https://mirror.baidubce.com",>> "%DOCKER_CONFIG%\daemon.json" echo "https://docker.m.daocloud.io">> "%DOCKER_CONFIG%\daemon.json" echo ],>> "%DOCKER_CONFIG%\daemon.json" echo "dns": ["8.8.8.8", "114.114.114.114"]>> "%DOCKER_CONFIG%\daemon.json" echo }>> "%DOCKER_CONFIG%\daemon.json" echo [OK] Mirror configuration saved echo Configured mirrors: echo - USTC Mirror echo - NetEase Mirror echo - Baidu Mirror echo - DaoCloud Mirror echo. :: Clean Docker echo [3/5] Cleaning Docker resources... docker system prune -f >nul 2>&1 echo [OK] Cleanup completed echo. :: Check ports echo [4/5] Checking ports... netstat -ano | findstr ":3306" >nul && echo [!] Port 3306 is in use || echo [OK] Port 3306 is available netstat -ano | findstr ":6379" >nul && echo [!] Port 6379 is in use || echo [OK] Port 6379 is available echo. :: Check disk space echo [5/5] Checking disk space... for /f "tokens=3" %%a in ('wmic logicaldisk where "DeviceID='C:'" get FreeSpace ^| findstr /v "FreeSpace"') do set FreeBytes=%%a set /a FreeGB=%FreeBytes:~0,-9% if %FreeGB% LSS 10 ( echo [!] Warning: Low disk space (%FreeGB% GB) ) else ( echo [OK] Sufficient disk space (%FreeGB% GB) ) echo. :: Generate docker-compose.yml echo [*] Generating docker-compose.yml... set "PROJECT_PATH=C:\PPRO\ETest-Vue-FastAPI" echo version: '3.8'> "%PROJECT_PATH%\docker-compose.yml" echo.>> "%PROJECT_PATH%\docker-compose.yml" echo services:>> "%PROJECT_PATH%\docker-compose.yml" echo mysql:>> "%PROJECT_PATH%\docker-compose.yml" echo image: mysql:8.0>> "%PROJECT_PATH%\docker-compose.yml" echo container_name: etest-mysql>> "%PROJECT_PATH%\docker-compose.yml" echo restart: always>> "%PROJECT_PATH%\docker-compose.yml" echo environment:>> "%PROJECT_PATH%\docker-compose.yml" echo MYSQL_ROOT_PASSWORD: Tgzz2025+>> "%PROJECT_PATH%\docker-compose.yml" echo MYSQL_DATABASE: ruoyi-fastapi>> "%PROJECT_PATH%\docker-compose.yml" echo MYSQL_USER: cpy_admin>> "%PROJECT_PATH%\docker-compose.yml" echo MYSQL_PASSWORD: Tgzz2025+>> "%PROJECT_PATH%\docker-compose.yml" echo TZ: Asia/Shanghai>> "%PROJECT_PATH%\docker-compose.yml" echo ports:>> "%PROJECT_PATH%\docker-compose.yml" echo - "3306:3306">> "%PROJECT_PATH%\docker-compose.yml" echo volumes:>> "%PROJECT_PATH%\docker-compose.yml" echo - mysql_data:/var/lib/mysql>> "%PROJECT_PATH%\docker-compose.yml" echo command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4>> "%PROJECT_PATH%\docker-compose.yml" echo networks:>> "%PROJECT_PATH%\docker-compose.yml" echo - etest-network>> "%PROJECT_PATH%\docker-compose.yml" echo.>> "%PROJECT_PATH%\docker-compose.yml" echo redis:>> "%PROJECT_PATH%\docker-compose.yml" echo image: redis:7-alpine>> "%PROJECT_PATH%\docker-compose.yml" echo container_name: etest-redis>> "%PROJECT_PATH%\docker-compose.yml" echo restart: always>> "%PROJECT_PATH%\docker-compose.yml" echo ports:>> "%PROJECT_PATH%\docker-compose.yml" echo - "6379:6379">> "%PROJECT_PATH%\docker-compose.yml" echo volumes:>> "%PROJECT_PATH%\docker-compose.yml" echo - redis_data:/data>> "%PROJECT_PATH%\docker-compose.yml" echo command: redis-server --appendonly yes>> "%PROJECT_PATH%\docker-compose.yml" echo networks:>> "%PROJECT_PATH%\docker-compose.yml" echo - etest-network>> "%PROJECT_PATH%\docker-compose.yml" echo.>> "%PROJECT_PATH%\docker-compose.yml" echo volumes:>> "%PROJECT_PATH%\docker-compose.yml" echo mysql_data:>> "%PROJECT_PATH%\docker-compose.yml" echo redis_data:>> "%PROJECT_PATH%\docker-compose.yml" echo.>> "%PROJECT_PATH%\docker-compose.yml" echo networks:>> "%PROJECT_PATH%\docker-compose.yml" echo etest-network:>> "%PROJECT_PATH%\docker-compose.yml" echo driver: bridge>> "%PROJECT_PATH%\docker-compose.yml" echo [OK] docker-compose.yml generated echo. :: Completion echo ======================================== echo Fix Completed! echo ======================================== echo. echo IMPORTANT: echo 1. Please restart Docker Desktop echo 2. Then run: docker-compose up -d echo. echo If still failing, try: echo - Use mobile hotspot echo - Or configure proxy echo - Or download images manually echo. echo File location: C:\PPRO\ETest-Vue-FastAPI\docker-fix.bat echo. pause