- Docker Repository 500Mまで無料
参考ページ †
https://dev.classmethod.jp/articles/push-docker-image-to-ecr-with-cli/
https://y-ohgi.com/introduction-terraform/laravel/ecr/
ECR操作 aws cli †
リポジトリのimage一覧 | aws ecr list-images --repository-name myspring |
ECR 属性 †
タグのイミュータビリティ | 同じタグ名で上書きできなくする場合はtrue |
プッシュ時にスキャン | PUSH時に脆弱性チェックをしてくれる。無料らしいのでtrueにすべし |
ECR 作成 †
- 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ログイン †
- まずはログイン情報を表示させるため以下のコマンド実施
export AWS_ACCOUNT_ID=`aws sts get-caller-identity | jq -r '.Account'`
export AWS_REGION=ap-northeast-1
aws ecr get-login-password --region ${AWS_REGION}
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 †
<%php phpinfo(); %>
FROM php:7-apache
COPY phpinfo.php /var/www/html
docker run -p 80:80 -e hoge=hogehoge -e fuga=mogefuga --name myphp myphp
タグ付けしてpush †
- 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