deotalandAi/apps/frontend/deploy-scripts/build-and-export.bat

113 lines
2.6 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
echo 🚀 前端 Docker 镜像构建和导出脚本
echo ========================================
:: 设置变量
set VERSION=%1
if "%VERSION%"=="" set VERSION=1.0.0
set IMAGE_NAME=deotaland-frontend
set IMAGE_TAG=%IMAGE_NAME%:v%VERSION%
set EXPORT_FILE=%IMAGE_NAME%-v%VERSION%.tar
set COMPRESSED_FILE=%EXPORT_FILE%.gz
echo 📋 构建信息:
echo 镜像名称:%IMAGE_TAG%
echo 导出文件:%EXPORT_FILE%
echo 压缩文件:%COMPRESSED_FILE%
echo.
:: 步骤1构建镜像
echo 🔨 步骤1构建 Docker 镜像...
docker build -t %IMAGE_TAG% .
if %errorlevel% neq 0 (
echo ❌ 镜像构建失败!
pause
exit /b 1
)
echo ✅ 镜像构建成功!
echo.
:: 步骤2本地测试
echo 🧪 步骤2本地测试容器...
docker run -d -p 3001:3000 --name test-frontend %IMAGE_TAG%
:: 等待5秒让容器启动
echo ⏳ 等待容器启动...
timeout /t 5 /nobreak > nul
:: 检查容器状态
docker ps | findstr test-frontend > nul
if %errorlevel% neq 0 (
echo ❌ 容器启动失败!
docker logs test-frontend
docker rm -f test-frontend
pause
exit /b 1
)
echo ✅ 容器启动成功!
echo.
:: 步骤3停止测试容器
echo 🛑 步骤3清理测试容器...
docker stop test-frontend
docker rm test-frontend
echo ✅ 测试容器已清理
echo.
:: 步骤4导出镜像
echo 📦 步骤4导出镜像...
docker save -o %EXPORT_FILE% %IMAGE_TAG%
if %errorlevel% neq 0 (
echo ❌ 镜像导出失败!
pause
exit /b 1
)
echo ✅ 镜像导出成功!
echo.
:: 步骤5压缩文件
echo 🗜️ 步骤5压缩镜像文件...
powershell -Command "Compress-Archive -Path '%EXPORT_FILE%' -DestinationPath '%EXPORT_FILE%.zip' -Force"
if %errorlevel% neq 0 (
echo ⚠️ 压缩失败,但镜像文件可用
) else (
echo ✅ 镜像压缩成功!
:: 删除原始tar文件
del %EXPORT_FILE%
echo 🗑️ 已删除原始tar文件
)
echo.
:: 步骤6生成版本信息
echo 📝 步骤6生成版本信息...
echo %date% %time% > version-v%VERSION%.txt
echo 镜像:%IMAGE_TAG% >> version-v%VERSION%.txt
echo 版本v%VERSION% >> version-v%VERSION%.txt
echo ✅ 版本信息已生成
echo.
:: 步骤7显示结果
echo 🎉 构建完成!
echo ========================================
echo 📁 输出文件:
if exist %EXPORT_FILE%.zip (
echo - %EXPORT_FILE%.zip
) else (
echo - %EXPORT_FILE%
)
echo - version-v%VERSION%.txt
echo.
echo 📊 镜像信息:
docker images %IMAGE_NAME%
echo.
echo 🚀 下一步:
echo 1. 将生成的文件提供给后端运维
echo 2. 参考 DEPLOYMENT_GUIDE.md 进行部署
echo.
pause