Docker imageをbuildしてAWS ECRにpushする

最近ECSを勉強中です。
自作アプリをデプロイしたいのですが、とりあえずECRにDocker imageをpushする必要があるようなので、push方法について調べてみました。

AWS ECRにリポジトリの作成

ECRコンソールから、imageをpushするリポジトリを作成します。

f:id:yuya_tequila:20190303124344p:plain

作成すると、以下のようにリポジトリ一覧に表示されます。
ここで表示されているURIは、のちほどpushコマンドを実行する際に使用します。

f:id:yuya_tequila:20190303125022p:plain

Docker CLIの認証

imageのpushにはDocker CLIを使用します。
そのために、作成したレジストリに対して、Docker CLIを認証します。

aws ecr get-login --no-include-email --region ap-northeast-1


上記のコマンドを実行すると、以下のようなレスポンスが返ってきます。

docker login -u AWS -p password https://aws_account_id.dkr.ecr.ap-northeast-1.amazonaws.com


このレスポンスが、AWS ECRに対してDocker CLIを認証するためのコマンドです。
なのでそのまま実行しましょう。

pushしたいDocker imageの作成

ECRにpushしたいDocker imageを、以下のコマンドで作成します。
コマンドはベースとなるDockerfileのあるディレクトリで実行します。

docker build -t my_app_name


その後、pushするためにタグをつけます。

docker tag my_app_name:latest <YOUR ECR URI>/my_app_name:latest

ECRへのpush

以下のコマンドを実行することで、作成したリポジトリにimageをpushできます。

docker push <YOUR ECR URI>/my_app_name:latest


リポジトリの中を見てみると、pushされていることが確認できます。

f:id:yuya_tequila:20190303143424p:plain
これでDocker imageのpushは完了です。