概要
Dockerfile
とDocker-compose
を使って簡単にnode.jsの環境を作る。
ディレクトリ構造
node_app
├─ Dockerfile
└─ docker-compose.yml
Dockerfile の記載
Dockerfile
#イメージを指定
FROM node:12.4.0-alpine
# 環境変数を定義
ENV NODE_ENV=development
# 雛形パッケージのインストール
RUN npm install -g express-generator
# 初期カレントディレクトリ
WORKDIR /app
# 開放ポート
EXPOSE 3000
docker-compose.yml の記載
docker-compose.yml
version: '3.7'
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: node
volumes:
- ./app:/app
ports:
- "8080:3000"
context
ディレクトリの指定 「 . 」 で同じディレクトリ
container_name
コンテナネームの指定
volumes
データーのマウント共有の指定 左がホスト 右がコンテナ
ports
コンテナとホストのポートをつなげる指定
Dockerfile からイメージのビルド
$ docker-compose build
コンテナを生成、起動
-d (デタッチ オプション)でバックグラウンドで起動
$ docker-compose up -d
コンテナに接続
-i(--interactive)標準入力を設定させ、コマンドを対話的にする
-t(--tty)疑似ターミナルの割り当て
$ docker exec -it [CONTAINER_ID] bash
express-generator で雛形の作成
今回はテンプレートエンジンはejsを使用
# express --view=ejs /app
パッケージのインストール
# npm install
サーバーを起動
# npm start
local hostに接続して Welcome to Express! と表示されれば完成です。
参考本
Docker ドキュメント
Docker/Kubernetes 実践コンテナ開発入門