😽
No.3【AWS】ECS Fargate+CodePipeline - Dockerイメージ作成編
はじめに
この記事は以下の続きとなる。
つまづきポイント
構築する環境
構築手順
CodeCommitでリポジトリを作成
手順は省略
ECRリポジトリ作成
手順は省略
WEBコンテンツの準備とDockerイメージの作成
- Cloud9にAWSコンソールからアクセスする。
- CodeCommitのリポジトリをCloneする。
$ git clone https://git-codecommit.<リージョン名>.com/v1/repos/リポジトリ名
- Cloneしたディレクトリ内に以下ファイルを作成する。
- 作成したファイルを以下のように編集する。
Dockerfile
FROM node:12
ADD ./server.js /usr/src/app/
CMD ["node", "/usr/src/app/server.js"]
server.js
const http = require('http');
const os = require('os')
http.createServer((req, res)=>{
res.writeHead(200, {'Content-Type': 'text/plan'});
res.end('Hello from HOST:' + os.hostname() + '\n');
}).listen(8080);
- Dockerイメージを作成する。
$ docker build -t node-sample .
- コンテナの動作確認をする。
//コンテナを起動
$ docker run -p 8080:8080 -d node-sample:latest
//コンテナ起動状況を確認する。
//dockerが正常に立ち上がらない場合はプログラムや手順に問題がないか確認する。
$ docker ps
//curlでコンテナが正常動作しているか確認する。
$ curl localhost:8080
Hello from HOST:570a8d5526da
- 作成したソースをCodeCommitにpushする。
(あまりよくないがテストなのでmasterに直接pushする。)
git add .
git commit -m "コメント"
git push origin master
- 作成したDockerイメージをECRへpushする。
- ECRにpushするための認証トークンを取得する。
aws ecr get-login-password --region <リージョン名> | docker login --username AWS --password-stdin <アカウントID>.dkr.ecr.<リージョン名>.amazonaws.com
- push先のリポジトリ名を作成したイメージにタグ付する。
docker tag node-sample:latest <アカウントID>.dkr.ecr.<リージョン名>.amazonaws.com/node-sample:latest
- Dockerイメージをpushする。
docker push <アカウントID>.dkr.ecr.<リージョン名>.amazonaws.com/node-sample:latest
Discussion