代码拉取完成,页面将自动刷新
@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion
:: 从docker-compose.yml获取当前版本号
for /f "tokens=3 delims=:" %%a in ('type docker-compose.yml ^| findstr /i /c:"image: zhongmingyv/hotel-server:"') do (
set CURRENT_VERSION=%%a
set CURRENT_VERSION=!CURRENT_VERSION: =!
)
if "!CURRENT_VERSION!"=="" (
echo 错误:无法从docker-compose.yml获取当前版本号
exit /b 1
)
echo 当前版本号: !CURRENT_VERSION!
:: 检查参数数量
if "%~1"=="" (
echo 错误:请提供新版本号作为参数
echo 用法:update.bat 新版本号
exit /b 1
)
if not "%~2"=="" (
echo 错误:参数数量过多
echo 用法:update.bat 新版本号
exit /b 1
)
set NEW_VERSION=%~1
echo 新版本号: !NEW_VERSION!
:: 执行docker-compose down
echo 正在停止当前服务...
docker-compose down
:: 更新docker-compose.yml中的版本号
echo 正在更新版本号...
:: 创建临时文件
type nul > docker-compose.yml.tmp
:: 逐行读取文件并进行替换
for /f "usebackq delims=" %%a in (docker-compose.yml) do (
set "line=%%a"
if "!line:zhongmingyv/hotel-server:%CURRENT_VERSION%=!" neq "!line!" (
set "newline=!line:zhongmingyv/hotel-server:%CURRENT_VERSION%=zhongmingyv/hotel-server:%NEW_VERSION%!"
echo !newline!>> docker-compose.yml.tmp
) else if "!line:zhongmingyv/hotel-lockcom:%CURRENT_VERSION%=!" neq "!line!" (
set "newline=!line:zhongmingyv/hotel-lockcom:%CURRENT_VERSION%=zhongmingyv/hotel-lockcom:%NEW_VERSION%!"
echo !newline!>> docker-compose.yml.tmp
) else if "!line:zhongmingyv/hotel-vue:%CURRENT_VERSION%=!" neq "!line!" (
set "newline=!line:zhongmingyv/hotel-vue:%CURRENT_VERSION%=zhongmingyv/hotel-vue:%NEW_VERSION%!"
echo !newline!>> docker-compose.yml.tmp
) else (
echo !line!>> docker-compose.yml.tmp
)
)
:: 替换原文件
move /y docker-compose.yml.tmp docker-compose.yml
:: 执行docker-compose up -d
echo 正在启动新版本服务...
docker-compose up -d
:: 删除旧版本镜像
echo 正在删除旧版本镜像...
docker rmi zhongmingyv/hotel-server:!CURRENT_VERSION!
docker rmi zhongmingyv/hotel-lockcom:!CURRENT_VERSION!
docker rmi zhongmingyv/hotel-vue:!CURRENT_VERSION!
echo 更新完成!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。