LoginSignup
26
18

More than 5 years have passed since last update.

Amazon ECR にログインなしで接続する

Last updated at Posted at 2016-07-03

Amazon ECR はとても便利ですが、ECS 以外でのデプロイとなると
適切なインスタンスプロフィールが与えられた EC2 であっても
例えば CLI の aws ecr get-login で得られる値をもって
docker login しないと接続ができませんでした

最近素晴らしいツールが公開されたので、改めて Qiita に記事を残します。

Amazon ECR credential helper

公式のツールとして
GitHub にソースコードとインストール方法、使い方が公開されています。
https://github.com/awslabs/amazon-ecr-credential-helper

Docker v1.11 で実装された credential-helper のインターフェースを実装した
プラグインという形になっており、利用方法もこれに準じています。

インストール

  • 対応クライアントは Docker v1.11 以降
  • git と make が必要
  • Go1.5 以降、または Docker そのものを利用してビルド
  • ~/.docker/config.json に credsStore を指定

使い方

以下のどれかを満たしておく。

  • EC2 上なら、適切な権限のインスタンスプロフィールを設定
  • 環境変数 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY を設定
  • 設定ファイル ~/.aws/credentials を用意

その上でツールがインストールされていれば、リポジトリが
ECR かどうかを意識する必要なく、docker login もせずに
docker pull や push が行えます。

Dockerized ECR credential helper

上述のツールはとても素晴らしいのですが、CoreOS や RancherOS などで
できれば git も make も使いたくない場合でも Docker さえあれば
このツールが動作するように、ツールそのものを Dockerize しました。

インストール

  • docker pull pottava/amazon-ecr-credential-helper
  • PATH の通った場所に docker-credential-ecr-login シェルを書く
  • ~/.docker/config.json に credsStore を指定

使い方

ツールと同じです。

その他

  • Dockerfile を真似してもらえればローカルでもビルドできます
  • 本家のリポジトリにもそのうち PR 送ろうかとは思います
  • Mesos 環境下ではうまく動作せず。これ ならもちろん ECR もいけるけど・・
26
18
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
26
18