#author("2023-08-08T06:48:56+00:00","default:wikiadmin","wikiadmin")
#author("2023-08-08T06:52:29+00:00","default:wikiadmin","wikiadmin")
-Docker Repository 500Mまで無料

#contents

*参考ページ [#y94a3f2b]

https://dev.classmethod.jp/articles/push-docker-image-to-ecr-with-cli/

https://y-ohgi.com/introduction-terraform/laravel/ecr/

*ECR操作 aws cli [#gf47fc9b]

|リポジトリのimage一覧|aws ecr list-images --repository-name myspring|


**ECR 属性 [#kca87092]

|タグのイミュータビリティ|同じタグ名で上書きできなくする場合はtrue|
|プッシュ時にスキャン|PUSH時に脆弱性チェックをしてくれる。無料らしいのでtrueにすべし|

**ECR 作成 [#t5a6bee3]

-IAMにAmazonEC2ContainerRegistryFullAccessを付与して実験
- --region付けないとエラーになったがprofileつければ回避できるのでprofile指定が推奨

 aws ecr create-repository --repository-name test-ecr --region=ap-northeast-1
 aws ecr describe-repositories --query 'repositories[].repositoryName'

**ECRログイン [#y138ea58]

-まずはログイン情報を表示させるため以下のコマンド実施

 export AWS_ACCOUNT_ID=`aws sts get-caller-identity | jq -r '.Account'`
 export AWS_REGION=ap-northeast-1

 # profile xxx を使ってログインパスワード表示。AWSのログインコマンドはBrokenPipeで失敗する。
 aws ecr get-login-password --profile xxx
 # どこにログインしているのか確認
 jq -r < "${HOME}/.docker/config.json" '.auths | keys[]'


-上記のコマンドでパスワードがでる。ログインする。

 docker login -u AWS -p 上記の出力 https://リポジトリID.dkr.ecr.ap-northeast-1.amazonaws.com

-一度にやるなら以下のコマンドで
-一度にやるなら以下のコマンドで(失敗する)

 aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com

*試しにDocker imageを作成してupload [#ta392479]

-phpinfo.phpを用意する

 <%php phpinfo(); %>

-Dockerfile作成

 FROM php:7-apache
 COPY phpinfo.php /var/www/html

-試しに実行

 docker run  -p 80:80 -e hoge=hogehoge -e fuga=mogefuga --name myphp myphp

*ログイン [#n9eda05f]

 aws ecr get-login-password --profile xxxx

-パスワードが出てくる。

*タグ付けしてpush [#pbfaa941]

-xxxはAWSアカウントIDで数値。リポジトリ名称は事前に作成したリポジトリ名称に置き換える

 docker tag myphp:latest xxx.dkr.ecr.ap-northeast-1.amazonaws.com/test-ecr:latest

 docker push 699567825067.dkr.ecr.ap-northeast-1.amazonaws.com/test-ecr:latest

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS