ECRにDockerイメージをデプロイしよう
https://gyazo.com/903c3432a5d105068d4ccc91f3e562c2/thumb/200#.jpg
ターミナルからAWSにログインするための情報を設定しよう
HTMLちゃん.icon あなたのパソコンからAWSにつなぐために必要な情報を設定していくよ!
llminatoll.icon アクセスキーIDとシークレットアクセスキーをシュゥゥゥーッ!
llminatoll.icon 超!エキサイティン!!!
HTMLちゃん.icon ちょっとわかばちゃんうるさいよ!
llminatoll.icon $ aws configure ☆ wakabaユーザーから☆
まずターミナルを開いてね。
$ aws configure
と入力してエンターを押そう。
code:terminal
Default region name None: ap-northeast-1 Default output format None: json 設定した内容を確認するにはこのコマンド!
$ aws configure list
こんな感じに表示されるはず
code:terminal
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************9Z71 shared-credentials-file
secret_key ****************ey43 shared-credentials-file
region ap-northeast-1 config-file ~/.aws/config
まずはローカルでPHPアプリを動かしてみよう
llminatoll.iconAWSが提供してくれているこのリポジトリを使うよ。GitHubで公開されているよ。
シンプルなPHPアプリ
AWSへのデプロイに最低限必要なファイルが揃っているよ
//リポジトリをクローンしてきて
$ cd ecs-demo-php-simple-app
//該当のディレクトリに移動
$ docker build -t amazon-ecs-sample .
//ディレクトリ直下のDockerfileを使い「amazon-ecs-sample」という名前でイメージをビルドして
$ docker run -d -p 80:80 --name amazon-ecs-sample amazon-ecs-sample:latest
//「amazon-ecs-sample」という名前のコンテナを作成・起動
https://gyazo.com/54bdff1d1937e6da125d944b762bdb95
「おめでとう🎊 今あなたのPHPアプリケーションはAmazon ECSの中のコンテナ上で動いています」
って書いてあるけどまだローカルで動いてるだけです。
このアプリをAWS上にデプロイするために次の工程へ進みましょう。
ECRにリポジトリを作り、Dockerイメージをpushしよう
https://gyazo.com/8205117008659f870edb7d577d4da7eb
▼サイドバーの「Amazon ECR」欄の「リポジトリ」から「リポジトリの作成」をクリック。
https://gyazo.com/b2ca272e97270cbf26d078aec33e7980
▼リポジトリ名に「amazon-ecs-sample」と入力し、次のステップをクリック
https://gyazo.com/dd5625ec7532c086fa4a1ddb10b45d3b
▼画面上部に現れる「プッシュコマンドの表示」ボタンをクリック
https://gyazo.com/97f5a509fcac6ac3dea31e1c6dce1a04
▼するとDockerイメージをアップロードするためのコマンドが表示されます。
https://gyazo.com/db8fd03ce1d0bd606090674108670725
llminatoll.iconこのコマンドをひとつずつコピペして実行していくだけでOKだよ!簡単だね!
llminatoll.icon101*********のところは、あなたの画面に表示された数字を使ってね!
これでECRへのpushができました!
手順1でエラーが出る場合
AWS CLIが最新版になっていない可能性があります。AWS CLIを最新版にアップグレードしてから再度チャレンジしましょう。
手順2でエラーが出る場合
Dockerfileがある階層に移動していない可能性があります。「awssample-ecs-demo-php-simple-app」ディレクトリの中に移動してから実行しましょう。
ログインできずpushできない場合
llminatoll.icon☘コラム:Dockerfileの中身を見てみよう
どんな命令が書かれているかな?
Dockerfile内で使える命令
table:Dockerfileの命令
命令 説明
FROM 作成元のコンテナイメージ
MAINTAINER(廃止予定) コンテナイメージ作成者
RUN 指定のコマンドを実行
ADD イメージ内にファイルを追加
ENV コマンド実行時の環境変数追加
WORKDIR コマンド実行時のカレントディレクトリ追加
EXPOSE コンテナ内のアプリが使用するポートを登録
VOULUME hostのディレクトリを割り当てる
CMD/ENTRYPOOINT コンテナ起動時の実行コマンド
次