@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