NestJSの環境をCLIとDockerでそれぞれ構築する方法
概要
Node.js ベースの Web フレームワークである NestJS の環境構築方法について解説します。
本記事では、以下の方法で環境構築をする方法を紹介します。
- NestJS CLIを使用して、環境構築する方法
- 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へのアクセスが制限されている場合があります。必要に応じて、ファイアウォールやネットワーク設定を調整してください。