Dockerイメージの登録

1. Amazon ECR にリポジトリを作成

  1. AWSコンソールの左上の サービス から Elastic Container Registry を選択します。※検索窓からECRと入力して選択しても大丈夫です。

  2. Repositoriesを選択します。

  3. リポジトリを作成を選択します。

  4. リポジトリ名にsimplechatと入力し、リポジトリを作成ボタンをクリックします。

  5. simplechatリポジトリが作成されます。

2. Amazon ECR にDockerイメージを登録

  1. サンプルアプリケーションをAmazon ECRに登録する作業をすすめるため、AWS Cloud9に移動します。AWSコンソールの左上の サービス から Cloud9 を選択します。※検索窓からCloud9と入力して選択しても大丈夫です。

    Cloud9環境はこの後の手順で数回利用するのでブラウザの別タブで開くと作業がスムーズです。

  2. CloudFormationによりsimplechat_cloud9_envが作成されているので、Open IDEを選択します。

  3. 以下コマンド実行はcloud9のターミナル上で行います。

  4. Cloud9の環境上に展開するファイルをダウンロードするため、こちらのリンク(アプリケーションファイル)を右クリックしてURLをクリップボードにコピーします。

  5. アプリケーションファイルをダウンロードします。
    入力例: wget https://ecs-for-aws-summit-online.workshop.aws/simplechat_app.tar.gz

wget 4.でコピーしたURL
  1. ダウンロードしたファイルを解凍します。
tar zxvf simplechat_app.tar.gz
  1. サンプルアプリケーションは以下のような構成です。
├── Dockerfile - Dockerファイル
├── Gemfile - Sinatraアプリケーションで使うライブラリ
├── Gemfile.lock
├── myapp.rb - Sinatraアプリケーション本体
├── public
│   ├── asset
│   ├── css
│   ├── js
│   └── webfonts
├── sql
│   └── schema.sql - アプリケーション用のデータベーススキーマ
├── startup.sh - Dockerファイル内で指定している起動スクリプト
└── views - htmlテンプレート
    ├── flash.erb
    ├── header.erb
    ├── index.erb
    ├── layout.erb
    ├── layout_sign.erb
    ├── signin.erb
    └── signup.erb

Cloud9のターミナルでコマンドを実行すると下記のようなイメージになります。

  1. サンプルアプリケーションのディレクトリに移ります。
cd simplechat_ecs_app/

ターミナルでコマンドを実行した結果のサンプルです。pwdlsは解説のために実行しております。実行頂く必要はありません。

  1. 別タブでAmazon ECRの画面を開いて作成したsimplechatリポジトリを選択し、プッシュコマンドの表示をクリックします。

    次はCloud9のターミナルに戻って作業します。表示されたコマンドを1. から順次実行します。

  2. プッシュコマンドの1. を実行します。
    プッシュコマンドを表示からコピー&ペーストしてください。
    下記はコマンドのサンプルです。本ハンズオンでは**米国東部(バージニア北部)**で作業いただいた場合を想定しております。

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin ご自身のアカウント.dkr.ecr.us-east-1.amazonaws.com
  1. プッシュコマンドの2. を実行します。
docker build -t simplechat .

build時にWARNINGが出る場合がありますが無視して手順をすすめてください。

  1. プッシュコマンドの3. を実行します。
docker tag simplechat:latest ご自身のアカウント.dkr.ecr.us-east-1.amazonaws.com/simplechat:latest
  1. プッシュコマンドの4. を実行します。
docker push ご自身のアカウント.dkr.ecr.us-east-1.amazonaws.com/simplechat:latest
  1. Amazon ECRの画面に移りRepositoriesからsimplechatリポジトリを選択して詳細を表示します。

  2. Dockerコンテナイメージがpushされたことを確認します。