新しい技術を利用している環境にジョインするため、事前に技術スタックを聞いて触っておいた時のメモ。
0. 前提条件
- 利用PC
macOS Monterey バージョン 12.5.1 MacBook Pro(14インチ、2021) チップ Apple M1 Pro メモリ 16GB 起動ディスク Macintosh HD ストレージ 500GB
1.1. Homebrewのインストール
- homebrewのインストール
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ・・・ Press RETURN/ENTER to continue or any other key to abort: ←ENTERを押す 。。。 ==> Installation successful!
- インストールできているか確認
% brew -v Homebrew 3.6.1 Homebrew/homebrew-core (git revision c170d14e690; last commit 2022-09-18)
1.2. nodebrewのインストール
- 既にnodeがインストールされているか確認
% brew ls | grep node
- (既にnodeがインストールされていたら)nodeのアンインストール
% brew uninstall --force node
- nodebrewのインストール
% brew install nodebrew
- nodebrewがインストールできているか確認
% nodebrew -v nodebrew 1.2.0
- nodebrewのセットアップ
% nodebrew setup
- nodebrewのパスを環境変数として追加
# 利用しているshの確認 % echo $SHELL # bashを利用している場合 % echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile % source ~/.bash_profile # zshを利用している場合 % echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zshrc % source ~/.zshrc
- nodebrewのパスを環境変数として追加
1.3. nodeのインストール
- nodebrewでインストールしたいバージョンを確認してnodeをインストール
- インストールしたいバージョンを確認
% nodebrew ls-remote
- nodeのインストール
% nodebrew install-binary stable # ←安定版をインストール % nodebrew install-binary latest # ←最新版をインストール % nodebrew install-binary <version> # ←バージョン指定でインストール (例) % nodebrew install-binary stable ・・・ Installed successfully
- nodeがインストールされたか確認
% nodebrew ls (例) % nodebrew ls v18.9.0 # ←インストールされているバージョンが表示される current: none
- 利用するnodeのバージョンを指定
% nodebrew use <version> (例) % nodebrew use v18.9.0 use v18.9.0
- 指定したバージョンのnodeが指定されているか確認
% nodebrew ls (例) % nodebrew ls v18.9.0 # ←インストールされているバージョンが表示される current: v18.9.0
- インストールしたいバージョンを確認
1.4. nestjsのプロジェクトを作成
- npmでnestjsのCLIをインストール
% npm i -g @nestjs/cli added 255 packages, and audited 256 packages in 27s 39 packages are looking for funding run `npm fund` for details found 0 vulnerabilities npm notice npm notice New patch version of npm available! 8.19.1 -> 8.19.2 npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.19.2 npm notice Run npm install -g npm@8.19.2 to update! npm notice
- npmでnestjsのプロジェクトを作成
% nest new <project_name> # ←プロジェクトの名前を入れる ・・・ ? Which package manager would you ❤️ to use? npm # ←npmを選択 ・・・ 🚀 Successfully created project nestjs_app 👉 Get started with the following commands: $ cd <project_name> $ npm run start Thanks for installing Nest 🙏 Please consider donating to our open collective to help us maintain this package. 🍷 Donate: https://opencollective.com/nest
1.5. サーバーの起動
- プロジェクトのディレクトリに移動
% cd <project_name>
- サーバーを起動する
% npm run start
- ブラウザで確認
- ブラウザで "http://localhost:3000/" にアクセスして "Hello World!" が表示されていることを確認する
1.6. postgresを利用してdocker化する
- docker-desktopのインストール
- dockerがインストールされたか確認
# dockerのバージョン確認 % docker -v Docker version 20.10.14, build a224086 # docker composeのバージョン確認 % docker compose version Docker Compose version v2.5.1
- プロジェクトにDockerfileとdocker-compose.ymlを作成する
% touch Dockerfile
% touch docker-compose.yml
- Dockerfileを編集する
% vim Dockerfile
# Dockerfileの内容 FROM node:latest WORKDIR /app COPY package*.json ./ RUN npm ci RUN npm i @nestjs/cli COPY . . EXPOSE 3001 CMD ["npm", "run", "start:dev"]
- docker-compose.ymlを編集する
% vi docker-compose.yml
# docker-compose.ymlの内容 version: '3' services: service: build: context: . dockerfile: Dockerfile ports: - 3000:3000 restart: always volumes: - ./src:/app/src postgres: image: postgres:latest environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password POSTGRES_DB: postgres TZ: 'Asia/Tokyo' ports: - 5432:5432 volumes: - ./postgres/data:/var/lib/postgresql/data
- dockerを起動する
※既にサーバーを起動していた場合はそちらをさっきに落としておく
% docker compose up --build