Dockerでfirebaseローカル実行ができなかった原因
Docker で構築した開発環境で、firebase のローカル実行ができなった原因を解決したので書いておきます。
TL;DR
- Docker で firebase をローカル実行して、ホストから接続するには –host 0.0.0.0 が必要
1 | hostオプションがないとホストのブラウザから閲覧不可 |
firebase ローカル実行
firabse はローカルで実行する機能があります。
いちいちデプロイしてると時間がかかるので、ありがたいですね。
1 | # ローカルで実行 |
ローカル実行したのにつながらない…
開発環境は次の記事を参考にして、Docker で構築していました。
で、同じようにfirebase serve
でローカル実行したのですが、ホストのブラウザからつながりませんでした。
firebase 起動時にエラーは出ておらず、ポートも開いているので何が問題なのかなーと思っていると、次のページを見つけました。
ポイントは firebase serve –only functions -p 5000 -o 0.0.0.0 でホストをグローバルにしているところ。コンテナ外からアクセスするために必要。
host オプションで解決
公式ページを見ると、host オプションを付けるように書かれていました。
オプションを付けたら、ホストのブラウザからも見れました 🎉
デフォルトでは、firebase serve は localhost からのリクエストにのみ応答します。(中略)他のローカル デバイスからテストする場合は、次のように –host フラグを使用します。
1 $ firebase serve --host 0.0.0.0 // accepts requests to any host
まとめ
firebase を Docker 環境でローカル実行するときは、host オプションを使いましょう。