Skip to Content

AWS ECRに手動でdocker push手順

概要

手元でビルドしたイメージをECRへ手動で送る

結論

作るのに手間かかるけどCI環境作った方が後々のストレス軽減できると実感した

準備

  1. ECRのリポジトリ作成
  • URIを控える
  • リポジトリ名と同じ名前でdocker buildする

実行例

  1. looopdenki-enqueueリポジトリを作成
  • この部分を控える
999999999999.dkr.ecr.ap-northeast-1.amazonaws.com/looopdenki-enqueue
  • docker build で控えた部分をコピペしタグを足した
1
docker build -t 999999999999.dkr.ecr.ap-northeast-1.amazonaws.com/looopdenki-enqueue:latest .
1
2
3
4
docker images
REPOSITORY                                                             TAG                 IMAGE ID            CREATED             SIZE
999999999999.dkr.ecr.ap-northeast-1.amazonaws.com/looopdenki-enqueue   latest              0a1d302391f7        3 seconds ago       16.4MB
alpine                                                                 latest              965ea09ff2eb        6 weeks ago         5.55MB

ECRへPush手順

  • トークン取得
1
> aws ecr get-login --no-include-email
  • トークン取得の実行結果
1
docker login -u AWS -p eyJwYXlsb2FkIjoieENHdHN3L1lBeTV0U3p5YWNMMUxBZVpCR3hSQjVYc2MxT3hBUXZnNFk2c0JuWlgxdTVQc2RJUUhZbnQzZS9kY2hwZ0RnTXYwT2JlT2txQVpycWZBaGFEWU0vS0ZGelF1aVJkRXhCNkVoQW4rZ21iaDNCK1FhVHFYaTNvK09NZElSS3BBL1JSRlVPK3pZM1g2WVAza0svM280Q1ZDOWY3SkhxcDRYc1QwUjNYaHFQaUhmRmN4K3hWVTl5VXVsMitPL29FUFFENS9BYjNjZVU3aTBvd3ZITWcrNTBaR1JJOGJHZm1WL3FjQjhoNjRGYmRtNEZyR3UyNTdSSURrV2dHNkhzcVRydE1HeTFvT3RoZVpkakhETTJpdzc2cnh2ZnFRbkJRSG1YZitJc3JqUmJYNXpSWE1lZnNvdFdLWTBYMmxXZzFaQXRWVWJ4bGFncTJNWnFRZDZvTGVtdm0rWGxkd0tmRXpKL0NwR3NBZURHcGQvWEZWS1pjN2VJV2ZZN1RQQU1UWDNHVGsxRDcxcHhHL2hxVVBaWFF1TXVibHBsd0JXNkxTN0gwL0hTWaRHTGVnS0xWL3FVRHpPV0F4UVlUNzJDUzE4ZzhZMkVGOWNad1lYbUp3WUJVaXVYMzdNQzJ0MUhvUjdVK2dnM0ZBRC93Y2p2Q24xOUVKSHNHVFhMdmpCL1hlZzlNZEVMMDVOSHBRSTROMXRSc04wNWJMUU1iQ1pjejJMM3I1YytkbVBySit2YmZFdWdHWndQcFRGSlcxYWgxM0ZyS1hkYW5mVXlwVENsbkpYM3N4eTFCeDlRMUNzalJqanE5bjBqc0JFKzRqaWJJb1E2Uk1BbTZHQWo3Wnhkd2RPMDBpeWxuTE1reWM2MzZ4aXFmcmI5K2h3WGhSOTNFNStDTllEcWZEaVVFelc5SFd0dGZOSExJUkFUaVY2YWVsZmZtMkx0YVJvSnBlS2JMNjlHNG1vaHhQSzJjU29zRmM0b1MyN1h4czhhM2hvYzM5SnBId3o4c0E2ZjJpdjJOZ25DUzRLcWlNUWlqVFNYcHpwVzJmZ2FOdlY5R3IrTjU1U3VXNlZxdEc5cHVUViNsUVFuaGNVUmIrMWpjYjVRbGVJMHdvTk16OEZDUzNUazh0djdPQXlSZlZZYzE0d2RaRG1VRU9nYUF0alcxUHV1OVVVWVJOWGk5SGpjcDdCQWI3WU1YTjZXNndnM2lxd3V4cDNWWkZKcFk2NEVBK1dRcXNWSGI4MlJXclJ5MUZaVHUwSm5lZ0syeUZxYzI0UmVTK3ZRTHlOZWNmN0xJelpydjJyRVdkV0R2NElDYzEvVUNIczFCSlE4d0tldnJ5R1orNysyR3A5bUJJc2dSUnUvZHdkQVl5THc5MTVTcVVpVzh4dG5Xd2svcWtzSFJyeXN5Yk9QN2tJM1h0UStTZ3NIRTlJQnRnV2UrVU01ditJUG05djRsTlljbVV1NXRMbmZDdDh2NEZVcFRhYjNYOEZqdzNtTlRCUWc9PSIsImRhdGFrZXkiOiJBUUVCQUhnQU1mS0RsSW9wQzZ6czBiTWRScllTSGEvQzM5a0NyY1A4a1ZwckU5ZitrUUFBQUg0d2ZBWUpLb1pJaHZjTkFRY0dvRzh3YlFJQkFEQm9CZ2txaGtpRzl3MEJCd0V3SGdZSllJWklBV1VEQkFFdU1CRUVEQlcvakZWSU1PS0tpcnZDY1FJQkVJQTc3WlU4ajVuK2MxR1paaEJsRTlrQmhkN0gzWE1SRnNZZlViTXRRVVVKaE96TzFpM1pHVWtlWnp4MklhdWMwNjVaOUxEMytDUFA5V2VObWlNPSIsInZlcnNpb24iOiIyIiwidHlwZSI6IkRBVEFfS0VZIiwiZXhwaXJhdGlvbiI6MTU3NTg1MjA4MX0= https://999999999.dkr.ecr.ap-northeast-1.amazonaws.com
  • トークン取得の実行結果をそのままコピペして実行
1
docker login -u AWS -p ...省略
  • 実行結果
1
2
3
4
5
6
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/ohmura/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded  # 成功したかがポイント!
  • イメージをプッシュ
1
docker push 99999999.dkr.ecr.ap-northeast-1.amazonaws.com/looopdenki-enqueue:latest
  • 実行結果
1
2
3
4
5
The push refers to repository [999999999.dkr.ecr.ap-northeast-1.amazonaws.com/looopdenki-enqueue]
6c1353f8153f: Pushed 
8d637fe4d29c: Pushed 
77cae8ab23bf: Pushed 
latest: digest: sha256:26533a563f4f0c461a568450f2fce02be35b4c30bd5f573d792d411635b6c656 size: 946
  • ECRにイメージが保存される

感想

最初はaws ecr get-loginがログインコマンドなんだろうと思ってハマった
実行結果をそのままコピペしたらログインできるなんて予想もしてなかった
Codecommit -> Codepipeline -> CodeBuild -> ECR にした方がいいわ、本当に

参考

https://qiita.com/harukisan/items/6f536e662b42ea2694a9