Files
geg-gas-web/docker/build-docker.bat

130 lines
3.6 KiB
Batchfile
Raw 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
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