113 lines
2.6 KiB
Batchfile
113 lines
2.6 KiB
Batchfile
@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 |