概要
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:Dockerfilecontainer_name:nodevolumes:-./app:/appports:-"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 実践コンテナ開発入門