👁

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 で実施してください。

  1. 疎通確認: ヘルスチェック相当のエンドポイントを叩き、API が応答することを確認する
  2. 書き込み確認: ユーザ登録などの POST エンドポイントを叩き、DB にデータが書き込まれることを確認する
  3. 読み取り確認: 書き込んだデータを取得できるエンドポイントを叩き、DB からデータが読み取れることを確認する

2.4 課題提出

下記内容を提出フォームより提出してください(提出はプレミアムプランでご利用いただけます)。

項目 内容
概要 作成した Dockerfile および Docker Compose 構成の特徴・工夫した点を簡潔に記載する
実装コード Dockerfile、docker-compose.yml、および反映した GitHub リポジトリの URL を記載する
動作確認 docker compose up でコンテナが起動し、バックエンドと DB が連携して動作する様子を、コマンド実行結果として記載する
まとめ 実装中に苦労したこと、工夫したこと、学んだことを記載する

設計・構築課題の伴走はプレミアムプランでご利用いただけます。

プランのアップグレード

3. メンタリング報告

以下の内容をメンタリングで報告してください(メンタリングはプレミアムプランでご利用いただけます)。

3.1 講座の振り返り

以下の要素それぞれについて、3つの観点で報告してください。

対象の要素

  • コンテナ
  • Dockerfile
  • マルチステージビルド
  • Dockerネットワーク
  • Dockerストレージ
  • Docker Compose

報告観点

  • 概要
  • 何ができるのか?
  • 使うときに気をつけるべきこと

3.2 提出課題の説明

提出した Dockerfile・docker-compose.yml をもとに、以下の内容を報告してください。

  • どのような設計意図でコンテナ化したのか
  • コンテナ間の連携をどのように組み立てたのか
  • 実装中に工夫したこと・苦労したこと

この教材は役に立ちましたか?

いいねをたくさんいただけると、制作者の励みになり、より多くのセクションが作れるようになります。

感想を一言(任意)

いただいたコメントは次の制作のヒントになります。ぜひお気軽にご投稿ください。

このコメントは他の受講生には公開されません。DevOps Camp運営が、教材改善のために確認します。

0 / 2000