新增 Docker 腳本以構建和推送映像,並更新 .gitignore 以排除 .txt 檔案
This commit is contained in:
parent
41d389880d
commit
8c38cbb491
1
.gitignore
vendored
1
.gitignore
vendored
@ -22,3 +22,4 @@ dist-ssr
|
|||||||
*.njsproj
|
*.njsproj
|
||||||
*.sln
|
*.sln
|
||||||
*.sw?
|
*.sw?
|
||||||
|
*.txt
|
||||||
|
|||||||
16
src/scripts/11.build-image.bat
Normal file
16
src/scripts/11.build-image.bat
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
@echo off
|
||||||
|
cd /d "%~dp0"
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
|
REM === 讀取版本 ========================
|
||||||
|
call version-inc.bat time
|
||||||
|
set /p VERSION=<version.txt
|
||||||
|
REM ====================================
|
||||||
|
|
||||||
|
REM === 參數 ===========================
|
||||||
|
set IMAGE_NAME=cvilux-fe
|
||||||
|
REM ====================================
|
||||||
|
|
||||||
|
REM === 流程 ===========================
|
||||||
|
docker rmi %IMAGE_NAME%:%VERSION%
|
||||||
|
docker build --no-cache -f ../Dockerfile -t %IMAGE_NAME%:%VERSION% ../
|
||||||
22
src/scripts/12.push-image.bat
Normal file
22
src/scripts/12.push-image.bat
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
@echo off
|
||||||
|
cd /d "%~dp0"
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
|
REM === 讀取版本 ========================
|
||||||
|
set /p VERSION=<version.txt
|
||||||
|
REM ====================================
|
||||||
|
|
||||||
|
REM === 參數 ===========================
|
||||||
|
set IMAGE_NAME=cvilux-fe
|
||||||
|
set REMOTE_URL=harbor.mjm-staging.developers-homelab.net
|
||||||
|
set REMOTE_REPO=proj_bims/cvilux_front
|
||||||
|
REM ====================================
|
||||||
|
|
||||||
|
REM === 流程 ===========================
|
||||||
|
docker login %REMOTE_URL%
|
||||||
|
docker tag %IMAGE_NAME%:%VERSION% %REMOTE_URL%/%REMOTE_REPO%:%VERSION%
|
||||||
|
docker tag %IMAGE_NAME%:%VERSION% %REMOTE_URL%/%REMOTE_REPO%:latest
|
||||||
|
docker push %REMOTE_URL%/%REMOTE_REPO%:%VERSION%
|
||||||
|
docker push %REMOTE_URL%/%REMOTE_REPO%:latest
|
||||||
|
echo Done.
|
||||||
|
pause
|
||||||
69
src/scripts/version-inc.bat
Normal file
69
src/scripts/version-inc.bat
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
@echo off
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
|
:: 檢查輸入參數
|
||||||
|
if "%~1"=="" (
|
||||||
|
echo 使用方式: version-inc.bat [inc ^| time ^| major]
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
:: 讀版本號(移除前後空白)
|
||||||
|
set /p VERSION=<version.txt
|
||||||
|
for /f "tokens=* delims= " %%v in ("%VERSION%") do set VERSION=%%v
|
||||||
|
echo Current version: %VERSION%
|
||||||
|
|
||||||
|
:: 拆字串(主.次.修訂)
|
||||||
|
for /f "tokens=1,2,3 delims=.-" %%a in ("%VERSION%") do (
|
||||||
|
set MAJOR=%%a
|
||||||
|
set MINOR=%%b
|
||||||
|
set PATCH=%%c
|
||||||
|
)
|
||||||
|
|
||||||
|
:: inc 模式:遞增 patch,不動 minor
|
||||||
|
if /i "%~1"=="inc" (
|
||||||
|
set /a PATCH=!PATCH!+1
|
||||||
|
set VERSION=!MAJOR!.!MINOR!.!PATCH!
|
||||||
|
)
|
||||||
|
|
||||||
|
:: time 模式:遞增 patch,並加上 -time
|
||||||
|
:: time 模式:加上時間戳
|
||||||
|
if /i "%~1"=="time" (
|
||||||
|
set /a PATCH=!PATCH!+1
|
||||||
|
|
||||||
|
rem ---- 抽取數字日期 (YYMMDD) ----
|
||||||
|
set "RAW_DATE=%date%"
|
||||||
|
set "NUM_DATE="
|
||||||
|
for /l %%i in (0,1,19) do (
|
||||||
|
set "ch=!RAW_DATE:~%%i,1!"
|
||||||
|
for %%c in (0 1 2 3 4 5 6 7 8 9) do if "!ch!"=="%%c" set "NUM_DATE=!NUM_DATE!!ch!"
|
||||||
|
)
|
||||||
|
rem 只取最後6位 (YYMMDD)
|
||||||
|
set "YYMMDD=!NUM_DATE:~-6!"
|
||||||
|
|
||||||
|
rem ---- 抽取時間數字 (HHMM) ----
|
||||||
|
set "RAW_TIME=%time%"
|
||||||
|
set "NUM_TIME="
|
||||||
|
for /l %%i in (0,1,19) do (
|
||||||
|
set "ch=!RAW_TIME:~%%i,1!"
|
||||||
|
for %%c in (0 1 2 3 4 5 6 7 8 9) do if "!ch!"=="%%c" set "NUM_TIME=!NUM_TIME!!ch!"
|
||||||
|
)
|
||||||
|
rem 只取前4位 (HHMM)
|
||||||
|
set "HHMM=!NUM_TIME:~0,4!"
|
||||||
|
|
||||||
|
rem ---- 組合完整時間戳 ----
|
||||||
|
set "DT=!YYMMDD!!HHMM!"
|
||||||
|
set VERSION=!MAJOR!.!MINOR!.!PATCH!-!DT!
|
||||||
|
)
|
||||||
|
|
||||||
|
:: major 模式:遞增 major,不動 minor 和 patch
|
||||||
|
if /i "%~1"=="major" (
|
||||||
|
set /a MAJOR=!MAJOR!+1
|
||||||
|
set VERSION=!MAJOR!.!MINOR!.!PATCH!
|
||||||
|
)
|
||||||
|
|
||||||
|
echo New version: %VERSION%
|
||||||
|
|
||||||
|
:: 寫回檔案
|
||||||
|
>version.txt echo %VERSION%
|
||||||
|
|
||||||
|
endlocal
|
||||||
Loading…
Reference in New Issue
Block a user