Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9145

シンプルなサーバーをDocker/Node.jsで構築してみた

$
0
0

はじめに

業務でログ監視システムの構築を行い、その際にログを出力するだけのシンプルなサーバーをDocker/Node.jsで作りました。
スタブ用途等ですぐに建てれる、サーバーの雛形としてお使い頂ければと思い、記事投稿に至りました。

前提

Docker / docker-composeを用いているので、インストールをお願いします。
インストール手順は、他の方がいっぱい書いておりますのでそちらをご参考に。

リポジトリ

下記のリポジトリになります。
simple_server

使い方

docker-compose builddocker-compose up等々は、
当リポジトリでは シェルスクリプトでラップしています。

ビルド手順

下記のシェルを実行し、イメージのビルドを行います。

/bin/sh build.sh

上記のシェルを実行すると、イメージの構築が出来ます。

% docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
simple_server_simple-server   latest              45163213fabc        4 hours ago         110MB

実行手順

下記のシェルを実行し、コンテナの起動を行います。

/bin/sh run.sh

下記でコンテナが起動できたことを確認できます。
ポートはhostの 30000ポートを、 コンテナの 3000ポートにバインドしています。

% docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                     NAMES
fb6bc7a1a37e        simple_server_simple-server   "docker-entrypoint.s…"   7 seconds ago       Up 5 seconds        0.0.0.0:30000->3000/tcp   simple_server_simple-server_1

アクセス確認

ここまででサーバーを立てることができたので、アクセスの確認を行います。
現状はログファイルにログを出力するだけの簡単な仕組みですが、お好きなように変更頂ければと。

ルートURL

% curl http://localhost:30000/
Hello World

infoログ

% curl http://localhost:30000/info
info logging
% tail -n 1 ~/workspace/simple_server/simple-server/log/app.log
{"message":"info logging","level":"info"}

warnログ

% curl http://localhost:30000/warn
warn logging
% tail -n 1 ~/workspace/simple_server/simple-server/log/app.log
{"message":"warn logging","level":"warn"}

errorログ

% curl http://localhost:30000/error
error logging
% tail -n 1 ~/workspace/simple_server/simple-server/log/app.log
{"message":"error logging","level":"error"}

備考

リポジトリ内の docker-compose.ymlをご覧頂いたら分かるかと思いますが、
下記のように appディレクトリ配下、 logディレクトリ配下に関してはマウントしており、
起動したままホスト環境側で変更可能です。

docker-compose.yml
volumes:-./simple-server/app:/app-./simple-server/log:/var/log-/app/node_modules

最後に

dockerやっぱりめちゃくちゃ便利ですね。
作って捨てることが出来るのは嬉しいです。
ご自身のgithub等々にストックとして追加しておくことで、実案件時に助かることが多いのではないでしょうか。
雛形としてお使い頂けたら幸いです!


Viewing all articles
Browse latest Browse all 9145

Trending Articles