iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
AI & Data

ML/DL實作-「營養抗老」專題製作系列 第 16

Day 16_封版、部署與 Demo(HF Spaces/本機 Docker)

  • 分享至 

  • xImage
  •  

🎯 目標

產出可重現建置:單一指令建置/啟動/驗收

提供兩種部署路徑(擇一或都做)

本機/內網 Docker Compose(App + MySQL)

Hugging Face Spaces(後端 API + README Demo,或前端頁作為 API Client)

交付最終文件(README、運維手冊、API 說明、資料表字典)
🛠 工作項目
1) 打包與版本

mvn -B -DskipTests clean package → 產出 fat jar

Dockerfile
版本標籤:v0.1.0(git tag、容器 image tag 一致)

2) 部署選項 A:本機/內網 Docker Compose

docker-compose.yml
db/init/ 放 schema.sql + Day4 data.sql(自動初始化)

驗收:
3) 部署選項 B:Hugging Face Spaces

方案 1:Gradio/Streamlit 前端 → 呼叫本機或雲端 API(最省事)

方案 2:純後端 Space (Docker)

README.md 描述 API、測試方法

space.yaml 指定 Docker Space

環境變數以 HF Secrets 設定(SPRING_DATASOURCE_*);若無外部 DB,可先上傳SQLite 或改為 H2 demo

Demo 頁(可選):提供簡單搜尋/推薦表單,展示 E001/E002

4) 可觀測與健康檢查(最小集合)

開啟 spring-boot-starter-actuator:/actuator/health、/actuator/info

info 顯示:appVersion、gitSha、(若有)model.version

簡易存活檢查:/actuator/health must be UP 才視為通過
5) 安全與設定

.env.sample:集中 SPRING_DATASOURCE_*、SERVER_PORT

產線預設把 logging.level 降為 WARN;移除 SQL 調試日誌

CORS(如要開前端 Demo):允許 OPTIONS, GET 來源 * 或限定域名

匯出 Postman/requests.http 以利外部驗收
📦 最終交付物

Dockerfile、docker-compose.yml、.env.sample

scripts/verify_final.sh、scripts/import_day4.sh(保留)

db/init/schema.sql、db/init/data.sql(或以 README 指示先執行)

docs/README_DEPLOY.md(本機/Space 兩種部署法、環境變數、測試指令)

docs/API.md(/api/effects、/api/recommendations、/api/search(若已做)、錯誤格式)

(可選)requests.http 或 Postman collection

上一篇
Day 15_AI 模型整合(ONNX Runtime)
下一篇
Day 17_Flyte 本機環境 + ETL 工作流骨架
系列文
ML/DL實作-「營養抗老」專題製作18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言