在dockerfiles中使用aws ecr image

這篇文章主要是筆記如何在本機使用AWS ECR上已存在的image,以及所需要的驗證方式。

首先到AWS ECR選擇你的repo,進入映像列表後選擇一個映像,在內頁複製他的URI,像是:735675645655.dkr.ecr.ap-northeast-1.amazonaws.com/my_project:23f4b2a。打開你的Dockerfile,將FROM後面的映像名稱改成這個URI

接下來,docker需要登入aws,才有權限可以取得aws ecr上的映像。這邊我們需要先安裝aws cli,並透過aws cli來登入。請依照下面的步驟進行:

  1. 安裝 aws cli
  2. 到AWS IAM 選擇使用者,然後從列表中選擇自己的帳號,進入內頁
    • 在「許可」頁籤的「政策」中新增ECR
      • 在「安全憑證」頁籤中新增「存取金鑰」,完成後選擇「下載CSV」
  3. 回到 command line 執行 aws configure
    • 在剛剛下載的CSV中,複製 Access Key ID 與 secret access key 並貼入
    • 完成後會發現在 .aws資料夾中已被建立了一個 cretencial 檔案
  4. 驗證登入:執行 aws ecr get-login-password | docker login -u AWS --password-stdin "https://$(aws sts get-caller-identity --query 'Account' --output text).dkr.ecr.ap-northeast-1.amazonaws.com"(黃色底色處改成你的origin
    • 成功後會顯示 Login Succeeded

登入成功後,我們就能照平常的指令 docker-compose -f docker-compose.yml up 來執行image了。

補充

透過aws cli取得最新的image tag,請輸入:

aws ecr describe-images --repository-name 儲存庫名稱 --query 'sort_by(imageDetails,& imagePushedAt)[-1].imageTags[0]' --output text | head -n 1

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料