#author("2024-12-21T10:52:54+00:00","default:wikiadmin","wikiadmin") #author("2024-12-21T12:05:01+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] **ECRログイン&ローカルにPull [#y138ea58] aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin 699567825067.dkr.ecr.ap-northeast-1.amazonaws.com --上記でログインセッションが生成されるのでそのまま間髪入れずにPull docker pull 699567825067.dkr.ecr.ap-northeast-1.amazonaws.com/registory/mynode *試しに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 *タグ付与 [#fb80d61f] # イメージのマニフェストを取得 MANIFEST=$(aws ecr batch-get-image --repository-name XXXX --image-ids imageTag=1.1 --output text --query images[].imageManifest) # 新しいタグを付与 aws ecr put-image --repository-name XXXX --image-tag new-tag --image-manifest "$MANIFEST" *タグlatest削除 [#ydbd747a] aws ecr batch-delete-image --repository-name XXXX --image-ids imageTag=latest