1
0

More than 1 year has passed since last update.

【Amazon ECR】AWS CLI を使ってリポジトリへプッシュする

Last updated at Posted at 2023-06-02

タイトルのとおり、ECRリポジトリにCLIでプッシュする方法です。
「ブラウザ上のGUIでイメージ選択してアップロード」みたいなことは出来ないので、コマンド実行して作業する必要があります。最初はマネジメントコンソール上で簡単にできるものだと思っていました。。。

IAMユーザー・アクセスキーを用意する

ECRリポジトリにプッシュするため、リポジトリ更新権限を持つユーザーが必要です。
なければ以下の手順で作成します。
image.png

許可のオプション:ポリシーを直接アタッチ
許可ポリシー:AmazonElasticContainerRegistryPublicFullAccess
       ※更新権限があればよいので PowerUser でもOK
image.png

AWSに接続するための認証情報(アクセスキー・シークレットアクセスキー)を取得します。
ユースケース:その他
タグ:分かれば何でもOK
image.png

作成されたアクセスキー・シークレットアクセスキーをコピーして控えておく
※後述のECRリポジトリへのプッシュ設定時に使用します
image.png

Amazon CLI インストール

以下のページから CLI をダウンロードしてインストールします。
https://aws.amazon.com/jp/cli/

CLI を使って先ほど取得した認証情報を設定します。

$ aws configure --profile {任意のプロファイル名}
AWS Access Key ID [None]: {アクセスキー}
AWS Secret Access Key [None]: {シークレットアクセスキー}
Default region name [None]: ap-northeast-1
Default output format [None]: json

ECRリポジトリにプッシュ

マネジメントコンソール上でプッシュに必要なコマンドを表示・取得する。
image.png
image.png

先ほど設定した認証情報を使って AWS にログイン

$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin ********.dkr.ecr.ap-northeast-1.amazonaws.com

 
以下のように表示されたら成功
image.png

イメージのビルド・タグ付け
--no-cachでキャッシュを使用しない
※イメージ名:rails7-mysql で書いていますが、適宜置き換えてください。

$ docker build --no-cash -t rails7-mysql .
$ docker tag rails7-mysql:latest ********.dkr.ecr.ap-northeast-1.amazonaws.com/rails7-mysql:latest

 
ECR にプッシュ

$ docker push ********.dkr.ecr.ap-northeast-1.amazonaws.com/rails7-mysql:latest

※認証情報の有効期限(30日)が切れるとプッシュ時にエラーとなるので、再度上述のログインコマンドを実行する

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0