@echo off REM 后端Docker镜像构建脚本 (Windows版本) REM 用于构建若依后端应用的Docker镜像 setlocal enabledelayedexpansion REM 脚本配置 set "SCRIPT_DIR=%~dp0" set "PROJECT_ROOT=%SCRIPT_DIR%..\..\" set "IMAGE_NAME=anxin-backend" set "IMAGE_TAG=latest" set "NO_CACHE=" set "CLEAN_BUILD=" REM 解析命令行参数 :parse_args if "%~1"=="" goto :check_docker if "%~1"=="-t" ( set "IMAGE_TAG=%~2" shift shift goto :parse_args ) if "%~1"=="--tag" ( set "IMAGE_TAG=%~2" shift shift goto :parse_args ) if "%~1"=="-n" ( set "IMAGE_NAME=%~2" shift shift goto :parse_args ) if "%~1"=="--name" ( set "IMAGE_NAME=%~2" shift shift goto :parse_args ) if "%~1"=="--no-cache" ( set "NO_CACHE=--no-cache" shift goto :parse_args ) if "%~1"=="--clean" ( set "CLEAN_BUILD=true" shift goto :parse_args ) if "%~1"=="-h" goto :show_help if "%~1"=="--help" goto :show_help echo [ERROR] 未知参数: %~1 goto :show_help :show_help echo. echo 后端Docker镜像构建脚本 echo. echo 用法: %~nx0 [选项] echo. echo 选项: echo -t, --tag TAG 设置镜像标签 (默认: latest) echo -n, --name NAME 设置镜像名称 (默认: anxin-backend) echo --no-cache 不使用缓存构建 echo --clean 构建前清理Maven缓存 echo -h, --help 显示此帮助信息 echo. echo 示例: echo %~nx0 # 使用默认设置构建 echo %~nx0 -t v1.0.0 # 构建并标记为v1.0.0 echo %~nx0 --no-cache # 不使用缓存构建 echo %~nx0 --clean -t dev # 清理后构建dev版本 echo. exit /b 0 :check_docker echo [INFO] 检查Docker环境... docker --version >nul 2>&1 if errorlevel 1 ( echo [ERROR] Docker未安装或不在PATH中 exit /b 1 ) docker info >nul 2>&1 if errorlevel 1 ( echo [ERROR] Docker守护进程未运行 exit /b 1 ) :clean_maven if "%CLEAN_BUILD%"=="true" ( echo [INFO] 清理Maven缓存... cd /d "%PROJECT_ROOT%" where mvn >nul 2>&1 if not errorlevel 1 ( mvn clean ) else ( echo [WARNING] Maven未安装,跳过清理步骤 ) ) :build_image echo [INFO] 开始构建Docker镜像... echo [INFO] 项目根目录: %PROJECT_ROOT% echo [INFO] 镜像名称: %IMAGE_NAME%:%IMAGE_TAG% cd /d "%PROJECT_ROOT%" echo [INFO] 执行构建命令... docker build -f docker/backend/Dockerfile -t %IMAGE_NAME%:%IMAGE_TAG% %NO_CACHE% . if errorlevel 1 ( echo [ERROR] Docker镜像构建失败 exit /b 1 ) echo [SUCCESS] Docker镜像构建成功: %IMAGE_NAME%:%IMAGE_TAG% :show_image_info echo [INFO] 镜像信息: docker images %IMAGE_NAME%:%IMAGE_TAG% echo [SUCCESS] 构建完成! echo [INFO] 运行镜像: docker run -d -p 8080:8080 --name anxin-backend-container %IMAGE_NAME%:%IMAGE_TAG% endlocal