130 lines
3.6 KiB
Batchfile
130 lines
3.6 KiB
Batchfile
@echo off
|
||
chcp 65001 >nul 2>&1 :: 设置UTF-8编码,避免中文乱码
|
||
setlocal enabledelayedexpansion
|
||
|
||
:: 定义日志文件路径
|
||
set "LOG_FILE=%~dp0docker_build.log"
|
||
|
||
:: 初始化日志文件
|
||
echo ============================================== > "%LOG_FILE%"
|
||
echo 构建开始时间: %date% %time% >> "%LOG_FILE%"
|
||
echo ============================================== >> "%LOG_FILE%"
|
||
|
||
:: 定义目录变量,当前目录为docker目录的上一级
|
||
set "ROOT_DIR=../"
|
||
set "DIST_DIR=%ROOT_DIR%dist"
|
||
set "DOCKER_DIR=%~dp0"
|
||
|
||
:: 输出目录信息并写入日志
|
||
echo ======================
|
||
echo 根目录 %ROOT_DIR%
|
||
echo 构建目录 %DIST_DIR%
|
||
echo Docker目录 %DOCKER_DIR%
|
||
echo ----------------------
|
||
echo ====================== >> "%LOG_FILE%"
|
||
echo 根目录 %ROOT_DIR% >> "%LOG_FILE%"
|
||
echo 构建目录 %DIST_DIR% >> "%LOG_FILE%"
|
||
echo Docker目录 %DOCKER_DIR% >> "%LOG_FILE%"
|
||
echo ---------------------- >> "%LOG_FILE%"
|
||
|
||
:: 步骤1:在根目录执行npm run build
|
||
echo ======================
|
||
echo 开始执行npm run build...
|
||
echo ======================
|
||
echo ====================== >> "%LOG_FILE%"
|
||
echo %date% %time% 开始执行npm run build... >> "%LOG_FILE%"
|
||
echo ====================== >> "%LOG_FILE%"
|
||
|
||
cd /d "%ROOT_DIR%" || (
|
||
echo 错误:无法进入根目录 %ROOT_DIR%
|
||
echo %date% %time% 错误:无法进入根目录 %ROOT_DIR% >> "%LOG_FILE%"
|
||
pause
|
||
exit /b 1
|
||
)
|
||
|
||
where npm >nul 2>nul || (
|
||
echo 错误:未找到npm,请安装Node.js并配置环境变量
|
||
echo %date% %time% 错误:未找到npm,请安装Node.js并配置环境变量 >> "%LOG_FILE%"
|
||
pause
|
||
exit /b 1
|
||
)
|
||
|
||
npm run build || (
|
||
echo 错误:npm run build 执行失败
|
||
echo %date% %time% 错误:npm run build 执行失败 >> "%LOG_FILE%"
|
||
pause
|
||
exit /b 1
|
||
)
|
||
|
||
echo 构建完成
|
||
echo %date% %time% 构建完成 >> "%LOG_FILE%"
|
||
pause
|
||
|
||
:: 步骤2:复制dist到docker目录
|
||
echo ======================
|
||
echo 开始复制dist目录到docker目录...
|
||
echo ======================
|
||
echo ====================== >> "%LOG_FILE%"
|
||
echo %date% %time% 开始复制dist目录到docker目录... >> "%LOG_FILE%"
|
||
echo ====================== >> "%LOG_FILE%"
|
||
|
||
if exist "%DOCKER_DIR%dist" (
|
||
echo 移除已存在的dist目录...
|
||
echo %date% %time% 移除已存在的dist目录... >> "%LOG_FILE%"
|
||
rd /s /q "%DOCKER_DIR%dist" || (
|
||
echo 错误:无法删除旧dist目录,请检查是否被占用
|
||
echo %date% %time% 错误:无法删除旧dist目录,请检查是否被占用 >> "%LOG_FILE%"
|
||
pause
|
||
exit /b 1
|
||
)
|
||
)
|
||
|
||
pause
|
||
|
||
xcopy "%DIST_DIR%" "%DOCKER_DIR%dist" /e /i /h /r /y || (
|
||
echo 错误:复制dist目录失败
|
||
echo %date% %time% 错误:复制dist目录失败 >> "%LOG_FILE%"
|
||
pause
|
||
exit /b 1
|
||
)
|
||
echo %date% %time% dist目录复制完成 >> "%LOG_FILE%"
|
||
|
||
:: 步骤3:构建Docker镜像
|
||
echo ======================
|
||
echo 开始构建Docker镜像...
|
||
echo ======================
|
||
echo ====================== >> "%LOG_FILE%"
|
||
echo %date% %time% 开始构建Docker镜像... >> "%LOG_FILE%"
|
||
echo ====================== >> "%LOG_FILE%"
|
||
|
||
cd /d "%DOCKER_DIR%" || (
|
||
echo 错误:无法进入docker目录 %DOCKER_DIR%
|
||
echo %date% %time% 错误:无法进入docker目录 %DOCKER_DIR% >> "%LOG_FILE%"
|
||
pause
|
||
exit /b 1
|
||
)
|
||
|
||
where docker >nul 2>&1 || (
|
||
echo 错误:未找到docker,请安装并启动Docker
|
||
echo %date% %time% 错误:未找到docker,请安装并启动Docker >> "%LOG_FILE%"
|
||
pause
|
||
exit /b 1
|
||
)
|
||
|
||
docker build -t pcitc/itc-web:1.0.0 . || (
|
||
echo 错误:docker build 执行失败
|
||
echo %date% %time% 错误:docker build 执行失败 >> "%LOG_FILE%"
|
||
pause
|
||
exit /b 1
|
||
)
|
||
|
||
echo ======================
|
||
echo 构建成功,镜像为pcitc/itc-web:1.0.0
|
||
echo ======================
|
||
echo ====================== >> "%LOG_FILE%"
|
||
echo %date% %time% 构建成功,镜像为pcitc/itc-web:1.0.0 >> "%LOG_FILE%"
|
||
echo ====================== >> "%LOG_FILE%"
|
||
echo 构建结束时间: %date% %time% >> "%LOG_FILE%"
|
||
echo ============================================== >> "%LOG_FILE%"
|
||
|
||
pause |