Step9: コンテナ1
このStepでは、コンテナの基本と Docker(Dockerfile・マルチステージビルド・Docker Compose など)を学び、Step 3 で実装したバックエンドと Step 6 で実装したフロントエンドをコンテナ化して、Docker Compose でローカル起動できる状態まで構築します。
1. 講座の履修
コンテナ講座 の以下の章を実施してください。すでに同等の知識がある場合は、講座の履修はスキップしても構いません。
2. 課題の実施
2.1 目的・背景
Step 3 で実装したバックエンドと Step 6 で実装したフロントエンドをコンテナ化することで、環境に依存しない形でアプリケーションを動かせるようにします。あわせて Docker Compose を使い、API・フロントエンド・データベースの3つをローカルでまとめて起動できる状態を目標にします。
2.2 実施要件
使用するサンプルアプリケーション
Step 3 で実装したバックエンドと Step 6 で実装したフロントエンドを継続して使用してください。
バックエンドのコンテナ化(必須)
バックエンドを Dockerfile でコンテナ化してください。マルチステージビルドを利用してイメージサイズを抑えることが目安です。
フロントエンドのコンテナ化(任意)
フロントエンドのコンテナ化は必須ではありません。Step 8 で Amplify を採用した場合はホスティング側でビルド・配信が完結するため、コンテナ化する必要はありません。CloudFront + S3 を採用した場合や、余裕がある場合は Dockerfile でコンテナ化しても構いません。
コンテナ間の連携
バックエンドと DB をまとめて起動できるように、Docker Compose で構成してください。フロントエンドをコンテナ化した場合はあわせて Compose に含めてください。API から DB のデータを読み書きできる状態が目標です。
2.3 判定基準
動作確認
以下のコマンドで一式が起動することを確認してください。
docker compose up -d
Step 2(バックエンド2)で作成した API 仕様書に沿って、以下 3 種類の疎通確認を curl で実施してください。
- 疎通確認: ヘルスチェック相当のエンドポイントを叩き、API が応答することを確認する
- 書き込み確認: ユーザ登録などの POST エンドポイントを叩き、DB にデータが書き込まれることを確認する
- 読み取り確認: 書き込んだデータを取得できるエンドポイントを叩き、DB からデータが読み取れることを確認する
2.4 課題提出
下記内容を提出フォームより提出してください(提出はプレミアムプランでご利用いただけます)。
| 項目 | 内容 |
|---|---|
| 概要 | 作成した Dockerfile および Docker Compose 構成の特徴・工夫した点を簡潔に記載する |
| 実装コード | Dockerfile、docker-compose.yml、および反映した GitHub リポジトリの URL を記載する |
| 動作確認 | docker compose up でコンテナが起動し、バックエンドと DB が連携して動作する様子を、コマンド実行結果として記載する |
| まとめ | 実装中に苦労したこと、工夫したこと、学んだことを記載する |