anxin-ruoyi/docker/backend/build.bat
2026-01-05 01:46:20 +08:00

129 lines
2.8 KiB
Batchfile
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@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