ECRにリポジトリをデプロイしよう
ターミナルからAWSにログインするための情報を設定しよう
llminatoll.iconターミナルを開いてね。あなたのパソコンからAWSにつなぐために必要な情報を設定していくよ!
$ 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.iconこのAWSが提供してくれているリポジトリを使うよ。GitHubで公開されているよ。
1ページだけのシンプルなPHPアプリ
AWSへのデプロイに最低限必要なファイルが揃っているよ
$ cd ecs-demo-php-simple-app
$ docker build -t php .
$ docker run -d -p 80:80 --name php php:latest
https://gyazo.com/54bdff1d1937e6da125d944b762bdb95
「おめでとう🎊 今あなたのPHPアプリケーションはAmazon ECSの中のコンテナ上で動いています」
って書いてあるけどまだローカルで動いてるだけです。
このアプリをAWS上にデプロイするために次の工程へ進みましょう。
キーペアを作成しよう
▼「サービス」からEC2をクリックします。
https://gyazo.com/8205117008659f870edb7d577d4da7eb
▼「○個のキーペア」という文字をクリックし
https://gyazo.com/50d2ad1211dd798121aba9d20c8dd3d9
▼「キーペアの作成」ボタンをクリックします。
名前はわかりやすいものならなんでもいいです。今回は「Practice」としました。
https://gyazo.com/c2b4d728d1177a12838f381bf56a0147
▼フィンガープリントが生成されます。
https://gyazo.com/1bd47381e079f05f67b5e4c2db400207
Amazon ECRにリポジトリを作ろう
▼「サービス」から 「ECS」をクリック。
https://gyazo.com/8205117008659f870edb7d577d4da7eb
ECR・・・AWSのプライベートなDockerイメージのレジストリ。コンテナを定義するイメージはここに置いておくわけです。
https://gyazo.com/b2ca272e97270cbf26d078aec33e7980
https://gyazo.com/7598c41bcde20d65c98b6211f1103beb
▼画面上部に現れる「プッシュコマンドの表示」ボタンをクリック
コマンドが出てくるので、上から順番に実行し、全て完了したのち完了をクリック https://gyazo.com/a63ffb56c406624be3e1ccae4c559ec1
▼するとECR上にDockerイメージをアップロードするためのコマンドが表示されます。
https://gyazo.com/30c0948e9d79a97540b4136ba3eb3056
llminatoll.iconこのコマンドをひとつずつコピペして実行していくだけでOKだよ!簡単だね!
▼ターミナルを開いて
❶ログインします
レジストリに対する Docker クライアントの認証に使用するログインコマンドを取得します。macOS または Linux システムの場合は、AWS CLI を使用します
$ (aws ecr get-login --no-include-email --region us-east-1)
❷Docker イメージを構築します。
docker build -t php .
❸構築が完了したら、このリポジトリにイメージをプッシュできるように、イメージにタグを付けます。
docker tag php:latest 101*********.dkr.ecr.us-east-1.amazonaws.com/php:latest
❹以下のコマンドを実行して、このイメージをプッシュします。
docker push 101*********.dkr.ecr.us-east-1.amazonaws.com/php:latest
これでECRへのpushができました!
llminatoll.icon101*********のところは、あなたの画面に表示された数字を使ってね!
llminatoll.icon☘コラム:Dockerfileの中身を見てみよう
どんな命令が書かれているかな?
Dockerfile内で使える命令
table:Dockerfileの命令
命令 説明
FROM 作成元のコンテナイメージ
MAINTAINER(廃止予定) コンテナイメージ作成者
RUN 指定のコマンドを実行
ADD イメージ内にファイルを追加
ENV コマンド実行時の環境変数追加
WORKDIR コマンド実行時のカレントディレクトリ追加
EXPOSE コンテナ内のアプリが使用するポートを登録
VOULUME hostのディレクトリを割り当てる
CMD/ENTRYPOOINT コンテナ起動時の実行コマンド
次