19
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

19
Last updated at Posted at 2019-11-22

はじめに

業務でログ監視システムの構築を行い、その際にログを出力するだけのシンプルなサーバーを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等々にストックとして追加しておくことで、実案件時に助かることが多いのではないでしょうか。
雛形としてお使い頂けたら幸いです!

共に働くWebエンジニアを募集しています!

不動産SHOPナカジツでは自社サービスを作っていく仲間を募集しています。
詳しくはWantedlyからお問い合わせください。
お待ちしております!

19
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?