docker-composeでnodejsを効率よく扱うための方法

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

こんにちわ。
 

「nodejs」と掛けまして、
 

「両親が共働きの女の子」と、ときます・・・
 

そのココロは・・・・
 

鍵を握るのはJS(女子小学生)です。
 

謎掛けを必死で考えてみた、下駄です。
 

サーバーでjavascriptが実行できるnodejsは、扱いになれると非常に頼もしいツールになります。
 

そんなnodejsをdockerを使って環境構築したいと思ったら、意外とめんどくさかったので、僕の行った方法を書き記しておきます。

docker-composeの各種ソースコード

 

 

解説

僕の環境の場合は、ローカルフォルダの”~/web”をwebソースコード用のフォルダに固定しているので、
それをdockerコンテナ内の”/var/www/html/”のシンボリックになるようにセットしています。
 

ご自身の環境に合わせた内容に書き換えてお使いください。
 

そして、nodejsのコンテナ起動で難しかった点としては、”docker-compose up -d”と-dオプションを付けても永続起動できてなくて、
すぐに終了して”Exit”になっていましたが、
 

“docker-compose.yml”の最後に書いている”tty: true”を付けることによって、この問題が解消できました。
 

この設定は、upする時の永続起動してくれる命令だったんですね。
 

さらに、実際のnodejsのプログラムを永続的に動かす時に、foreverを使って動かしていたんですが、
そのまま起動コマンドで書いた所、コマンドが実行されると、サーバーが終了してしまう現象が発生していました。
 

どうやらこれは、サーバーが無限ループを発生させていて、dockerコンテナは自動的に終了をしているという状態らしいです。
 

nodejsで”socket.io”などを使う場合などは永続起動が必要なので、どうすればいいか悩んでいたんですが、
実はforeverを使わずに、そのままnodejsプログラムを起動すると、待受状態になってくれることが分かりました。
 

dockerを使った方がシンプルに構築できるなんて、思いも寄らないメリットでした。
 

本番環境でも、こうしたメリットが利用できるdockerを使うというのは悪くないですね。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です