DevOps
Docker, Compose, object storage and release pipelines.
mc rm --recursive 是前綴比對,不是目錄比對
用 mc 清理 MinIO 上累積的舊版本目錄,每個平台保留最新 5 個。刪除清單事前驗證過:與保留清單交集為 0,聯集正好等於原始總數。清單正確不等於執行正確。
Docker Compose volume mount 空目錄陷阱
old-game-server 容器化後,GM 加減幣回 "invalid token"。Docker compose 對不存在的 bind mount source 會自動建空目錄(root owned) — 不報錯、不警告,容器正常啟動但 mount 是空的。
首次 Release 踩坑:goreleaser + Tauri + GitHub Actions
用 goreleaser + Tauri 做第一次 v0.1.0 release,CI 連續 fail 了好幾輪,每輪修一個坑。跨平台打包的坑幾乎都是「本機能跑 CI 不行」——本機有全域 config、有 cache、有裝好的 native 工具。
docker compose 跨 VM 部署 cluster RPC 必須用 network_mode: host
把舊有 cluster framework(skynet / akka / erlang OTP / Elixir cluster)從裸機部署改成 docker compose multi-VM 部署時,跨 host 的 cluster RPC 完全不通。
Docker mutable tag 在多 host 環境會拉到不同 SHA
同一個 docker tag、同一個 image registry repo,在多台 host 上跑 docker pull 拉到的 image SHA 不同——某些 host 拿到 broken 版本。