Dockerで簡単にNestJSの環境構築をする
Table of Contents
- NestJSとは
- dockerで何も考えずに
- serverを立ち上げる
1.NestJSとは
_NestJS_とは、
効率的で信頼性ができスケールが可能なサーバー側アプリケーションを構築するための進歩的なNode.jsフレームワークである。
とある感じでExpress fastifyとおんなじ感じに認識でしたが、個人的に https://docs.nestjs.com/#philosophy にある一文が結構好きな一文でとりあえず遊ぼうかと思いました。
2.dockerで何も考えずに
使うもの
- docker
- nest/cli (docker-imageがあるので利用します)
完成後のディレクトリ構成
project-path
|- docker-compose.yml
|- Dockerfile
|- ...nest_modules
2-1. docker-compose.yml と Dockerfileの作成
Dockerfileの中身
FROM nestjs/cli
WORKDIR /myapp
docker-compose.ymlファイルの作成
version: "3.7"
services:
api:
build: .
tty: true
ports:
- "3000:3000"
volumes:
- type: bind
source: .
target: /myapp
3. nestのプロジェクトを作成する
流れとしては、docker containerに入りcliを利用しプロジェクトを作成。
依存しているパッケージをインストールする感じです。
docker containerに入る
$ docker exec -it {{ CONTAINER NAME }} sh
$ pwd
/myapp
nest projectを作成する
$ nest new .
上記でプロジェクトの作成はできるのですが、serverを立ち上げるとエラー吐くのでかるく修正。
{
"name": ".",
"version": "0.0.1",
"description": "",
...
}
上記のnameを好きな名前に書き換える。
{
"name": "sample", # ここを書き換える
"version": "0.0.1",
"description": "",
...
}
依存packageをインストール。
$ npm install
で準備完了。
4. serverを立ち上げる
流れとしては、docker containerに入り dev serverを立ち上げる感じにします。
docker containerに入る
$ docker exec -it {{ CONTAINER NAME }} sh
$ npm run start
であとは、ブラウザから http://localhost:3000 で質素な画面が表示されます。
一応こんな感じ