v0.11.0

部署紀錄

最後更新

本頁說明 CLI 在每次操作時送給 API Server 的部署資訊與操作紀錄,以及 dismiss 旗標的轉換。

回報時機

函式 呼叫時機 API 失敗處理
removePod() up 清掉舊容器後、clear 開始時、down 結束後 POST /api/pod/update/:uid,body {"dismiss": 1} 忽略
upsertPod() up 結束時 POST /api/pod/upsert 回傳錯誤,up 視為失敗
recordPod() 每個指令結束時,以及同步時 POST /api/pod/record/insert 忽略

CLI 固定連往 http://localhost:8080,API Server 未啟動時 up 會在最後一步回報 failed to upsert pod,但遠端容器已經啟動。

紀錄內容

records.content 的值:

值 來源
sync 遠端目錄為空,首次同步
overwrite 差異預覽後確認覆寫
up up 完成
clear clear 完成
down/ps/logs/restart/exec/build 轉送指令完成,值為指令名稱

每筆紀錄另存執行 CLI 的主機名稱與第一個非 loopback IPv4。records.pod_id 以 uid 查 pods.id 寫入,且欄位為 NOT NULL;首次部署的 sync 紀錄發生在 pods 寫入之前,查不到 pods.id,寫入會失敗並被忽略。

dismiss 狀態

stateDiagram-v2
    [*] --> 有效: up(upsert)
    有效 --> 已移除: down/clear/重新 up 前清理
    已移除 --> 有效: up(upsert 重設 dismiss=0)
    已移除 --> [*]

GET /api/pod/list 只列出 dismiss = 0 的部署。status 欄位由 CLI 寫入 starting,目前不會更新為其他值。

資料庫位置

條件 路徑
設定 DB_PATH DB_PATH 的值
存在 /.dockerenv /data/database.db
其他 ~/.podrun/database.db,目錄不存在時自動建立

資料表結構見 HTTP API。

EN