Dockerイメージの検証、更新する手順
Posted: | Categories: AWS | Tags: ECS
できればインフラ構成についてもコード化したいため、CodeBuildのbuildspecでECSの設定を記述/更新しています。 このため、ECSの設定画面でポチポチと変更、検証することも可能ですが、Githubへのpush、CodeBuildで更新がかかると、ECSへの変更も元に戻ります。 (検証のために、ちょっとだけECS側で変更するのは無害です) 恒久的な変更はCodeBuild側へ変更するようにしましょう。 下記の手順はローカルでDockerイメージをダウンロードして検証する方法です。 「こうすると効率が良かった」というレベルのものです。 作業の流れ ECRからイメージダウンロード Mac上でコンテナを起動し、いろいろ検証( Dockerfileに必要な変更の検討など ) 必要な修正が決まったら、Githubのtestブランチにpush Githubの testブランチへpushされるとCodeBuildでdocker buildが始まり、ECRにpushされる ECRのDockerレポジトリのイメージIDをメモ ECSで起動しているコンテナを変更して動作確認を行う という流れになります。 イメージをローカルにダウンロードする プライベートなDockerレポジトリ(ECR)への認証を済ませる必要があります 認証情報の取得 eval (aws ecr get-login –profile=profile名 –no-include-email –region ap-northeast-1) 手元で実行 (2019/02/22の内容で、環境変数などは将来的に変更する可能性があります) docker run -p 10022:22 -e GITHUB_ENV=env25 -e AWS_ACCESS_KEY_ID=XXXXXXXXXXX -e AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYY -it 11111111.dkr.ecr.ap-northeast-1.amazonaws.com/image-name:latest /bin/bash -p 10022:22 : リモートにSSHログインできるようにdocker内にsshdを立てました(将来的にはssmに切り替えたいですが)、sshdがlistenするポートが22番ポートなのですが、これをMacの10022にポートフォワードしています -e GITHUB_ENV=env25 : ECSで「どの環境を更新するか」を指定しています(Githubの「どのブランチを読み込むのか?」にも使っています) -it : Dockerコンテナに入ってCLIを利用したい時に使うオプションです 111111.dkr.ecr.ap-northeast-1.amazonaws.com/php-fpm:latest : 最新イメージの場合はlatestを指定しますが、トラブルシューティングの時には必要なタグを指定してください /bin/bash : Dockerコンテナで実行するプログラムを指定します。今回はCLIをつかって調査したいので、/bin/bashを利用しています( /bin/bashをインストールしていないコンテナの場合は /bin/ash をお使いください ) 検証が終わって「開発サーバ郡の標準のDockerイメージとして使いたくなった」ら ECSで起動する際のdockerイメージですが、タスク定義で起動するDockerイメージのタグをstable 11111.dkr.ecr.ap-northeast-1.amazonaws.com/php-fpm:stable としています(デフォルトはlatestです) Read more...