LoginSignup
2
1

More than 3 years have passed since last update.

【AWS】ECRでレポジトリを作成し、イメージをプッシュする手順

Posted at

1. レポジトリの作成

オレンジ色の「レポジトリを作成」をクリック

image.png

設定内容

image.png

(1) リポジトリ名



▼以下はデフォルトのまま

(2) プライベート (イメージを公開したい場合はパブリックにする)
(3) タグのイミュータビリティ: 無効
(4) イメージスキャンの設定: 無効
(5) 暗号化設定: 無効

image.png

右下のオレンジ枠の「リポジトリを作成」をクリックすれば完成。たったこれだけ。

タグのイミュータビリティとは?

イメージの上書き防止機能。

dockerでイメージを作成する時は、イメージ名:タグ名で、名前をつける。タグ名にはバージョンを指定することが一般的。

タグのイミュータビリティ機能を有効にすると、タグ名が同じ場合に上書きを防いでくれる。

レポジトリ作成後は変更できない。

イメージスキャンの設定とは?

脆弱性を確認する機能。

イメージスキャンを有効にすると、イメージがECRレポジトリにプッシュされた時に、イメージの中身をスキャンし、欠陥がないか確認してくれる。

イメージスキャンの結果はAmazon EventBridgeに保存される。

無効にしている場合は、手動でスキャンを実行できる。

暗号化設定とは?

暗号化方式の指定。

デフォルトではAES-256で暗号化されているが、KMS暗号化を有効にすると、AWS Key Management Service (KMS)で指定した方法で暗号化することができる。

2020/7/29から使えるようになった比較的新しい機能。


2. イメージのビルド

docker-compose.ymlファイルとDockerfileを用意して、buildコマンドを実行する。

docker-compose build サービス名

ECRにプッシュする前にイメージ名を変更する必要があるため、イメージ名は識別できるものにしておく。

docker-compose.ymlの中にimageディレクティブを記述する。

image: <イメージ名>:<タグ名>


デバッグしてからビルドする関数定義

本番環境のイメージ作成など、注意が必要な場合は、

(1)ローカルに未コミットがないか、(2)リモートレポジトリとローカルレポジトリのブランチの間に差分がないかを確認してから、イメージを作成するとうっかりミスを減らせる。

詳細はgitのハッシュ値を使ってイメージビルド前のデバッグ処理を作成する方法を参照。


3. イメージをプッシュする

作成したレポジトリにイメージをプッシュするには、docker pushコマンドを使う。

ECRへのイメージプッシュの処理手順は以下になる。

  1. docker経由でawsへのログイン
  2. docker tagでイメージ名を変更
  3. docker pushでイメージを送信
  4. ECR上でイメージが追加されたか確認

詳細は、ECRにログインし、レポジトリにイメージをプッシュするエイリアスコマンドの作成方法を参照。

ポイント1

docker pushする際に、プッシュ先のレポジトリはイメージ名で指定する。

イメージ名は以下のようにする必要がある。

<ホスト名>/<レポジトリ名>:<タグ名>

イメージ名を変更するために、docker tagコマンドを使う。

ポイント2

イメージは新たにビルドする必要がある。

元々あるイメージを再度プッシュしようとしても、変更がない場合はプッシュは行われない

プッシュ後にECRに行って、イメージタグが追加されているか確認すること。

image.png



ECR上でプッシュした日時でイメージが確認できればOK。

2
1
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
2
1