更新 Dockerfile 和建構腳本,修正 docker-entrypoint.sh 路徑,刪除不必要的推送腳本,並調整版本管理邏輯

This commit is contained in:
koko 2025-10-27 15:38:00 +08:00
parent fb2985aa5d
commit 48e9669bd0
6 changed files with 26 additions and 78 deletions

View File

@ -33,11 +33,9 @@ COPY --from=builder /app/dist /usr/share/nginx/html
# 暴露 Nginx 預設的 80 端口
EXPOSE 80
# 2025-08-29
LABEL changelog="2025-08-29: 去掉環境變數 VITE_MQTT_BASEURL新增 MQTT 相關 API並新增總部帳戶管理初版資產管理 : 過濾無效檔案、更新資產編輯和圖表資料來源的處理邏輯。"
# Nginx 已經預設啟動,所以不需要 CMD 指令
COPY docker-entrypoint.sh /docker-entrypoint.sh
# docker-entrypoint.sh 位於 scripts/ 目錄,更新 COPY 路徑以正確包含該檔案
COPY scripts/docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]

View File

@ -0,0 +1,17 @@
@echo off
cd /d "%~dp0"
setlocal enabledelayedexpansion
REM === 讀取版本(手動管理)================
REM 注意:版本號請手動更新於 scripts\version.txt或直接編輯此目錄下的 version.txt
REM 本腳本不再自動遞增版本,避免 build 時自動變動 tag。
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% ../

View File

@ -15,8 +15,6 @@ 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

View File

@ -3,7 +3,8 @@ cd /d "%~dp0"
setlocal enabledelayedexpansion
REM === 讀取版本 ========================
call version-inc.bat time
rem 每次執行僅遞增 patch不加時間戳
call version-inc.bat inc
set /p VERSION=<version.txt
REM ====================================
@ -12,5 +13,8 @@ set IMAGE_NAME=cvilux-fe
REM ====================================
REM === 流程 ===========================
docker rmi %IMAGE_NAME%:%VERSION%
docker build --no-cache -f ../Dockerfile -t %IMAGE_NAME%:%VERSION% ../
REM 嘗試刪除同名影像,若不存在則顯示訊息並繼續
docker rmi %IMAGE_NAME%:%VERSION% 2>nul || echo Image %IMAGE_NAME%:%VERSION% not found, continuing...
REM Dockerfile 在專案根目錄scripts 在 src\scripts所以要向上兩層
docker build --no-cache -f ..\..\Dockerfile -t %IMAGE_NAME%:%VERSION% ..\..\

View File

@ -1,69 +0,0 @@
@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