第7章: docker-compose の活用例 (Node.js)

最近のweb開発では javaScript は必要不可欠なものになりました。以前は js といえば web ブラウザの中でうごかすものというの認識でしたが昨今では js を使ってサーバーサイドプログラミングをする場面も多くなってきました。

js を使ってサーバーサイドプログラミング環境を作る場合に定番となっているのが node.js と言われるものです。

これからの web アプリ開発の必須のスキルとして node.js はぜひ押さえておきたいところです。

7.1 作成する docker 環境について

node.js も当然、公式の docker イメージが公開されています。

node.js は長期サポート (LTS) リリースモデルというやり方が採用されており、特別な理由がない場合、LTS のバージョンを指定すると間違いはないようです。

2020/12月時点では14となります。

7.2 準備する各ファイルの説明

下記のようなファイル構成を目指してゆきます。
(任意のディレクリを作成 今回は ~/tmp/docker_sample/node)
% mkdir -p ~/tmp/docker_sample/node && cd ~/tmp/docker_sample/node
(ファイルの中身は下記の記事参考)
% touch Dockerfile docker-compose.yml hello.js

Dockerfile (イメージを作成するためのファイル)

FROM node:14.15.4
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

docker-compose.yml (compose コマンドで実行するファイル)

version: '3.8'
services:
  app:
    container_name: ctr_node14_15_4
    build:
      context: .
    image: node14_15_4:yarn
    volumes:
      - .:/usr/src/app
    stdin_open: true
    tty: true

hello.js (起動テスト用のスクリプト)

console.log('Hello Node.js!!');

7.3 docker-compse の実行例

(イメージ作成からコンテナ、バックグラウンド起動まで)
$ docker-compose up --build -d
(作ったコンテナで作業)
$ docker-compose exec app /bin/bash
(コンテナの中でスクリプト実行)
# node hello.js
(コンテナの中でライブラリ追加 Commander の場合)
# yarn add commander
(コンテナ終了)
# exit
(コンテナの外からモジュールを追加したいとき Moment の場合)
$ docker-compose exec app yarn add moment
(コンテナのバックグラウンド終了)
$ docker-compose stop
(次回からの実行)
$ docker-compose start

7.4 まとめ

  • yarn コマンドについては公式イメージで最初から提供されている
  • バージョンについては LTS 版を選択する方が間違いは少ない

7.5 次回

今回は汎用的な node.js 環境をつくってみました。

昨今のweb開発では node.js は必須の要素になりつつあります。node.js についての詳細については公式ページを参照ください。

node.js 公式: https://nodejs.org/ja/

次回は Vue.js の事例を紹介したいと思います。