CodeGym /コース /Docker SELF /各サービスのDockerfileを作成する

各サービスのDockerfileを作成する

Docker SELF
レベル 23 , レッスン 2
使用可能

3.1 フロントエンド(ReactJS)のDockerfileの作成

この段階では、ReactJSのフロントエンド、Python(Flask)のバックエンド、PostgreSQLデータベースを含むマルチコンテナアプリケーションの各サービス用のDockerfileを作成するよ。Dockerfileは各サービス用のDockerイメージを作成するための指示を定義するんだ。

frontendディレクトリにDockerfileを作成しよう:

ターミナル

cd frontend
touch Dockerfile

フロントエンド用Dockerfileの内容:

ターミナル

# ベースイメージとしてnodeを使用
FROM node:14

# 作業ディレクトリを設定
WORKDIR /app

# package.jsonとpackage-lock.jsonをコピーして依存関係をインストール
COPY package*.json ./

# 依存関係をインストール
RUN npm install

# プロジェクトの他のファイルをコピー
COPY . .

# ポート3000を設定
EXPOSE 3000

# アプリを起動
CMD ["npm", "start"]

このDockerfileは次の手順を実行するよ:

  1. ベースイメージとしてnode:14を使用。
  2. 作業ディレクトリ/appを設定。
  3. package.jsonpackage-lock.jsonをコピー。
  4. npm installで依存関係をインストール。
  5. プロジェクトのすべてのファイルを作業ディレクトリにコピー。
  6. アプリにアクセスできるようにポート3000を開く。
  7. npm startを使ってアプリを起動。

3.2 バックエンド(Flask)用Dockerfileの作成

バックエンドディレクトリにDockerfileを作成してね:

ターミナル

cd backend
touch Dockerfile

バックエンド用Dockerfileの内容:

dockerfile

# ベースイメージとしてpythonを使用
FROM python:3.12

# 作業ディレクトリを設定
WORKDIR /app

# requirements.txtをコピーして依存関係をインストール
COPY requirements.txt ./

# 依存関係をインストール
RUN pip install --no-cache-dir -r requirements.txt

# 他のプロジェクトファイルをコピー
COPY . .

# ポート5000を指定
EXPOSE 5000

# アプリを起動
CMD ["python", "run.py"]

このDockerfileは以下の手順を実行するよ:

  1. ベースイメージpython:3.12を使用。
  2. 作業ディレクトリ/appを設定。
  3. requirements.txtファイルをコピー。
  4. pip installを使って依存関係をインストール。
  5. すべてのプロジェクトファイルを作業ディレクトリにコピー。
  6. アプリにアクセスするためのポート5000を開放。
  7. python run.pyを使ってアプリを起動。

3.3 データベース用Dockerfile(PostgreSQL)の作成

データベースPostgreSQLの場合、公式のイメージを使用するので、独自のDockerfileを作成する必要はありません。その代わりに、docker-compose.ymlでPostgreSQLを設定します。

3.4 Dockerイメージのビルドとテスト

フロントエンドとバックエンド用のDockerfileを作成した後、それらのビルドをテストすることが重要だね。

フロントエンド用Dockerイメージのビルド:

Terminal

cd frontend
docker build -t task_management_frontend .

バックエンド用Dockerイメージのビルド:

Terminal

cd ../backend
docker build -t task_management_backend .

コンテナの動作確認:

フロントエンド用コンテナの起動:

Terminal

docker run -p 3000:3000 task_management_frontend

バックエンド用コンテナの起動:

Terminal

docker run -p 5000:5000 task_management_backend

フロントエンドの動作確認はhttp://localhost:3000、バックエンドの動作確認はhttp://localhost:5000をチェックしてみよう。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION