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

fastifyをDockerで動かしてみてハマったポイント

$
0
0

はじめに

node.jsでメジャーなWeb Framworkはexpressで長らく使っていましたが。
fastifyについての記事を多く見かける様になったの使ってみました。
その際にDockerで実行環境を構築した時にハマったポイントを記載します

実行環境

os: mac os X 10,14,6
node.js: v14.15.0
docker: v19.03.13

ハマったポイント

fastifyはデフォルトでリッスンするホストが127.0.0.1(localhost)でdocker環境で実行した場合にportをexposeしていてもapiエンドポイントに接続できない。
※ expressはデフォルトが0.0.0.0

127.0.0.1でもLocal環境での実行なら問題はありませんが、docker環境で実行すると問題が発生します。
それは、ホストのlocalhostとdockerのlocalhostは違うという事です。(別ネットワーク)
なので、コンテナをrunしてlocalhost:portでアクセスしても繋がりません。
なので別ホストから接続が出来るように0.0.0.0でリッスンしましょうという事です。

解決方法

expressと同じ仕様だろうと思わず、ちゃんとドキュメントを読みましょうという事でした。
引用

  • 対処前
=== 省略 ===
fastify.listen(3000, function (err, address) {
  if (err) {
    fastify.log.error(err)
    process.exit(1)
  }
  fastify.log.info(`server listening on ${address}`)
})
  • 対処後
=== 省略 ===
fastify.listen(3000, '0.0.0.0', function (err, address) {
  if (err) {
    fastify.log.error(err)
    process.exit(1)
  }
  fastify.log.info(`server listening on ${address}`)
})
  • express(参考)
app.listen(3000);

Viewing all articles
Browse latest Browse all 8691

Trending Articles