154 lines
5.6 KiB
Batchfile
154 lines
5.6 KiB
Batchfile
@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
|