emahiro/b.log

Drastically Repeat Yourself !!!!

Elastic Container Registory に Image をアップロードする

Overview

Lambda on Container を試す際に Elastic Container Registory (以下 ECR) にコンテナイメージをアップロードする必要がありました。 このエントリではその ECR に Docker イメージをアップロードする方法について記載します。

以下に書かれてる内容と大体同じです。

aws.amazon.com

前提

以下が前提になります。

  1. AWS ECR を操作できる権限を持った Role でログインしていること。
  2. ログインした Role でクレデンシャルを取得し、aws コマンドを叩く権限を手に入れていること。

2 については権限を持ってるユーザーであれば local から aws コマンドを叩いても可能ですが、権限を持った Role でログインして CloudShell を使うのがいいかもしれません。

ちなみに僕は AWS に慣れていないのでクレデンシャルの取得方法で悩みました。

dev.classmethod.jp

イメージをアップロードする

# アップロードしたいイメージのディレクトリを掘る
$ aws ecr create-repository --repository-name $DirName/$imageName --image-scanning-configuration scanOnPush=true

# 手元のイメージを ECR 用のイメージとして作成する(タグ切る)
$ docker tag $localImageName:$Tag $ECR_URL:$Tag

# ecr のクレデンシャルを取得して docker にログインする
$ aws ecr get-login-password | docker login --username AWS --password-stdin $ECR_URL

# Image を push する。
$ docker push $ECR_URL:$Tag

$ECR_URL$AccountID.dkr.ecr.$Region.amazonaws.com になります。

ちなみに $AccountID は以下から確認できます。

f:id:ema_hiro:20201223155815p:plain