NestJSの環境をCLIとDockerでそれぞれ構築する方法

概要

Node.js ベースの Web フレームワークである NestJS の環境構築方法について解説します。

本記事では、以下の方法で環境構築をする方法を紹介します。


  1. NestJS CLIを使用して、環境構築する方法
  2. Dockerを使用して、環境構築する方法

ここでは、以下バージョンを使用した、NestJSの環境を構築する方法を説明します。

NestJS v10.1.7
nodejs v19.7.0

また、今回作成するコードは全て、GitHubに掲載しています。

※ NestJSはNode.jsで動作します。Node.jsがインストールされていない場合は、公式ウェブサイトからダウンロードしてインストールしてください。
node.js

NestJS CLIを使った環境構築方法

この方法では、NestJS のCLIツールを使用します。 以下の手順に従って実行してください。

NestJS単体で環境を構築するには、以下の前提条件を満たす必要があります

NestJS CLIのインストール

NestJS CLIをグローバルにインストールします。以下のコマンドを実行してください:

npm install -g @nestjs/cli

これにより、NestJS CLIがシステムにインストールされます。

プロジェクトの作成

NestJSプロジェクトを作成するために、以下のコマンドを実行してください:

nest new nestjs-project

上記のコマンドでは、nestjs-projectという名前のプロジェクトディレクトリが作成されます。ディレクトリ名は任意のものに変更できます。

プロジェクトディレクトリへの移動

プロジェクトディレクトリに移動します。以下のコマンドを実行してください:

cd nestjs-project

移動後、プロジェクトのルートディレクトリに移動します。

依存関係のインストール

プロジェクトのルートディレクトリで、依存関係をインストールします。以下のコマンドを実行してください:

npm install

これにより、NestJSおよび関連するパッケージがプロジェクトに追加されます。 最終的に以下のようなディレクトリ構造になります。

nestjs-project
├── node_modules
│   └── (依存関係のパッケージ)
├── src
│   ├── app.controller.spec.ts
│   ├── app.controller.ts
│   ├── app.module.ts
│   ├── app.service.ts
│   └── main.ts
├── test
│   ├── app.e2e-spec.ts
│   └── jest-e2e.json
├── .gitignore
├── nest-cli.json
├── package.json
├── README.md
├── tsconfig.build.json
└── tsconfig.json

サーバーの起動

NestJSサーバーを起動します。以下のコマンドを実行してください:

npm run start

サーバーが正常に起動すると、コンソールに「Nest application successfully started」と表示されます。 ブラウザでhttp://localhost:3000にアクセスして、NestJSアプリケーションが正常に動作していることを確認してください。

NestJS CLIを使用すると、NestJSプロジェクトの環境構築が簡単になります。NestJS CLIをインストールし、nest newコマンドを使用してプロジェクトを作成し、依存関係をインストールするだけで、素早くNestJSアプリケーションの開発を始めることができます。

Dockerを使った環境構築する方法

まずはじめに、Dockerをインストールしてください。公式のDockerウェブサイトから、対応するオペレーティングシステムに合わせたDockerのインストーラーをダウンロードし、インストールを行ってください。

プロジェクトディレクトリの作成

まず、NestJSプロジェクトを作成するために新しいディレクトリを作成します。コマンドラインで以下のコマンドを実行してください Git Hubから公式のプロジェクトディレクトリをクーロンします。

git clone https://github.com/nestjs/typescript-starter.git nestjs-docker-project

プロジェクトディレクトリへの移動

プロジェクトディレクトリに移動します。以下のコマンドを実行してください:

cd nestjs-docker-project

移動後、プロジェクトのルートディレクトリに移動します。

必要なパッケージのインストール

NestJSとDockerイメージの作成に必要なパッケージをインストールします。

npm install 

Dockerfileの作成

NestJSアプリケーションをDockerイメージとしてビルドするために、プロジェクトフォルダ内にDockerfileという名前のファイルを作成し、以下の内容を追加します。

FROM node:19.7.0-alpine

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm", "run", "start"]

アプリケーションの作成

NestJSアプリケーションを作成します。プロジェクトディレクトリ内に新しいファイル(例: main.ts)を作成し、以下のコードを追加してください

Dockerでは、全てのホストから接続が出来るように0.0.0.0でリッスンします。

main.ts

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000, '0.0.0.0');
}
bootstrap();

Dockerイメージのビルド

以下のコマンドを使用して、Dockerイメージをビルドします。

docker build -t nestjs-docker-project .

Dockerコンテナの実行

ビルドしたDockerイメージからDockerコンテナを実行します。

docker run -p 3000:3000 -d nestjs-docker-project

これにより、NestJSアプリケーションがDockerコンテナ内で実行され、ホストのポート3000にマッピングされます。ブラウザやAPIテストツールなどから http://localhost:3000 にアクセスすることでNestJSアプリケーションにアクセスできます。

以上が、Dockerを使用してNestJSアプリケーションを環境構築する手順です。Dockerを活用することで、環境構築の手間を減らし、開発プロセスをスムーズにすることができます。

注意: ホストのファイアウォールやネットワーク設定によっては、ポート3000へのアクセスが制限されている場合があります。必要に応じて、ファイアウォールやネットワーク設定を調整してください。