Help us understand the problem. What is going on with this article?

dockerで簡単にNestJSの環境を作る

More than 1 year has passed since last update.

Dockerで簡単にNestJSの環境構築をする

Table of Contents
  1. NestJSとは
  2. dockerで何も考えずに
  3. serverを立ち上げる

1.NestJSとは

NestJS - A progressive Node js web framework.png

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ファイルの作成

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を立ち上げるとエラー吐くのでかるく修正。

(旧)package.json
{
  "name": ".",
  "version": "0.0.1",
  "description": "",
  ...
}

上記のnameを好きな名前に書き換える。

package.json
{
  "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 で質素な画面が表示されます。

localhost 3000.png

一応こんな感じ

https://github.com/Ntakuya/nestjs-practice/tree/environment/nest-cli

Gma_Gama
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした