💻

Docker コンテナを使って Node.js 開発を始める

2020/10/25に公開

logo-light.svg

この記事について

本記事は、Docker を使って Node.js 開発を始めるための方法について記載しています。

対象読者

  • Node.js を使って開発を始めたい方
  • Docker コンテナ上で Node.js アプリケーションを動かしたい方
  • ホスト OS を綺麗なまま Node.js の開発を行いたい方

はじめに

以前、npm パッケージ n を使って Node.js のバージョン管理を行う方法を投稿しましたが、正直なところ、開発は全部 Docker コンテナ上で行いたいのが理想でした。
そのため、今回は Docker Compose で定義したコンテナで Node.js を実行しようと思います。

環境構築

Docker インストール

OS が Windows または macOS の場合は、Docker Desktop をインストールします。
OS が Linux の場合は、以下の記事を参考にしてください。

Docker Compose 定義

Docker および Docker Compose をインストールしたら、Node.js を動かすコンテナを docker-compose.yaml に定義します。
任意のフォルダ/ディレクトリに移動し、docker-compose.yaml を作成します。

docker-compose.yaml
version: '3'

services:
  app:
    image: node:lts # バージョン指定も可能 ex. node:12.16.1
    container_name: <任意のコンテナ名>
    tty: true
    volumes:
      - ./src:/src
    working_dir: "/src"

コンテナ起動

docker-compose.yaml ファイルを作成したら、コンテナを起動します。

docker-compose up -d

Docker Compose のログを確認します。以下のような実行結果になれば OK です。

docker-compose logs -f
実行結果
Attaching to <任意のコンテナ名>
<任意のコンテナ名> | Welcome to Node.js <バージョン情報>.
<任意のコンテナ名> | Type ".help" for more information.

Node.js バージョン確認

Docker コンテナ上で動いている Node.js のバージョンを確認します。

docker-compose run --rm app node -v 
実行結果(例)
v12.16.1

Node.js 開発

docker-compose.yaml ファイルと同じ階層に src フォルダ/ディレクトリが作成されていることを確認します。
src 以下に、新しく sample.js ファイルを作成します。

sample.js
console.log('Hello World!')

以下のコマンドを実行し、コンテナ上で Node.js を起動します。
Hello World! が結果として帰ってくれば OK です。

なお、node sample.js の部分がコンテナ内で実行される内容です。単純な node だけでなく、npm installls などの Linux コマンドも実行可能です。

docker-compose run --rm app node sample.js
実行結果
Hello World!
docker-compose run --rm app ls -al
実行結果
total 8
drwxr-xr-x 3 root root   96 Mar  7 09:46 .
drwxr-xr-x 1 root root 4096 Mar  7 10:02 ..
-rw-r--r-- 1 root root   27 Mar  7 09:45 sample.js

関連リンク

参考情報

Qiita

Discussion