新しい技術を利用している環境にジョインするため、事前に技術スタックを聞いて触っておいた時のメモ。
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