dockerコンテナをECS repository( 以下、ECR )にアップする
まず、WibUIにログインした後、上部メニューの[ サービス ]->[ EC2 Container Service ]->[ リポジトリ ]->[ リポジトリの作成 ] からリポジトリを作成する。
リポジトリ名
『リポジトリ名は英字で始まる必要があり、小文字、数字、ハイフン、アンダースコア、スラッシュのみを含めることができます。』というルールがある。 スラッシュがつけられるので、組織名をつけた。Githubのレポジトリ名は大文字を許容するが、ECS Registryは許容しないので小文字に変更する。
example/Hoge_Web -> example/hoge_web
AWS CLIがインストールされていなければインストールして、アカウント設定する。
-
あるいはpipでインストール pip install awscli アカウント設定は上のURLを参考にすること。
ECRへのアクセス設定をする
( これはリポジトリ作成時に説明が表示されます。一度、空のリポジトリを作成すると流れがより良く分かるかもしれません )
ECRへのログインコマンドを得る、ECRにログインする。
aws ecr get-login --no-include-email --region ap-northeast-1
下記のような出力が得られるので、それを実行する
docker login -u AWS -p password https://1111111111.dkr.ecr.ap-northeast-1.amazonaws.com
Dockerイメージをビルドする。
カレントディレクトリにあるDockerfileを用いてイメージ作成。Dockerfileにある場所に移動してから docker buildする。
docker build -t example/hoge_api .
イメージにタグを付ける
docker tag example/hoge_api:latest 1111111111.dkr.ecr.ap-northeast-1.amazonaws.com/example/hoge_api:latest
Dockerレポジトリを作成
aws ecr create-repository --region us-east-1 --repository-name hoge
実行例。 これは2017/12に出たばかりの fargateモードで検証するため、バージニア北部リージョンにレポジトリを作成している
❯ aws ecr create-repository --region us-east-1 --repository-name hoge-web
下記の『repositoryUrl』が重要。イメージに対する『タグ付け』に使用する
{
"repository": {
"registryId": "1111111111",
"repositoryName": "hoge-web",
"repositoryArn": "arn:aws:ecr:us-east-1:1111111111:repository/hoge-web",
"createdAt": 1512382617.0,
"repositoryUri": "1111111111.dkr.ecr.us-east-1.amazonaws.com/hoge-web"
}
}
repositoryUriを用いてタグ付けする。
docker tag hoge_web:latest 1111111111.dkr.ecr.us-east-1.amazonaws.com/hoge-web
ECRにDockerイメージをpush
docker push 1111111111.dkr.ecr.ap-northeast-1.amazonaws.com/example/hoge_api:latest