這篇文章主要是筆記如何在本機使用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來登入。請依照下面的步驟進行:
- 安裝 aws cli
- 到 https://aws.amazon.com/tw/cli/ 點選「下載並執行 MacOS PKG 安裝程式」
- 到AWS IAM 選擇使用者,然後從列表中選擇自己的帳號,進入內頁
- 在「許可」頁籤的「政策」中新增ECR
- 在「安全憑證」頁籤中新增「存取金鑰」,完成後選擇「下載CSV」
- 在「許可」頁籤的「政策」中新增ECR
- 回到 command line 執行 aws configure
- 在剛剛下載的CSV中,複製 Access Key ID 與 secret access key 並貼入
- 完成後會發現在 .aws資料夾中已被建立了一個 cretencial 檔案
- 驗證登入:執行
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