Docker コンテナを使って Node.js 開発を始める
この記事について
本記事は、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 の場合は、以下の記事を参考にしてください。
- Install Docker on CentOS 7
- Install Docker Compose on CentOS 7
- Install Docker on Ubuntu 18.04 on WSL2
Docker Compose 定義
Docker および Docker Compose をインストールしたら、Node.js を動かすコンテナを 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 ファイルを作成します。
console.log('Hello World!')
以下のコマンドを実行し、コンテナ上で Node.js を起動します。
Hello World!
が結果として帰ってくれば OK です。
なお、node sample.js の部分がコンテナ内で実行される内容です。単純な node だけでなく、npm install
や ls
などの 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
関連リンク
- インストールしている Node.js のバージョンをダウングレードさせるために n を使ってみる
- Install Docker on CentOS 7
- Install Docker Compose on CentOS 7
- Install Docker on Ubuntu 18.04 on WSL2
Discussion