跳轉到

ECR Image Deployment Pattern

概念概覽

ECR Token 過期問題

核心知識

ECR Token 過期問題

ECR 的 docker login token 12 小時後過期。若 docker-compose 設定 pull_policy: always,VM 重啟或超過 12 小時後會因 token 失效導致無法拉 image,服務啟動失敗。

解法: 1. docker-compose 移除 pull_policy: always(用本地已快取的 image) 2. 或在 EC2 user-data / cron job 每 10 小時自動執行 ECR login 刷新 token

Dockerfile 路徑依賴

若 docker-compose 引用 build: ./path/to/Dockerfile,部署到 VM 時**必須一起打包對應的 Dockerfile**,否則 compose up 失敗。

Tag 策略

shared-dev tag 與 dev/prod 區隔環境。建議用獨立 repository(service-name-shared-dev)而非同 repo 不同 tag,避免誤拉。

經驗教訓

  • ECR token 12 小時過期是常見被遺忘的陷阱,設計長期運行環境時必須有 token 自動刷新機制

  • docker-compose pull_policy: always 在 token 有效期內方便,但長期環境應避免

常見陷阱

  • pull_policy: always + ECR token 過期 = VM 重啟後服務無法起來

  • shared tag 與 dev/prod 放同一 ECR repo 有混用誤拉風險

最佳實踐

  • 長期運行環境加入 ECR login cron job(每 10 小時)

  • shared-dev 環境用獨立 ECR repository 命名隔離

相關概念

來源 Sessions

日期 Session 貢獻摘要

| 2026-04-07 | 9632bcf1-7666-464a-9364-4b237ee0291b | 記錄 ECR token 12 小時過期對 docker-compose 的影響,以及 shared-dev tag 策略的風險 |


本概念頁面由 Semi-Brain Wiki 系統自動維護

最後更新: 2026-04-07