Docker Compose で Firebase のテスト環境を作る
はじめに
仕事で Firebase の Readltime Database を使う機会があり、Firebase Local Emulator Suite を使ったテスト環境を構築したのでメモ
設定ファイル
Dockerfile
Firebase CLI をインストールして、Realtime Database のエミュレータのみを起動している。 なお、Realtime Database のエミュレータは 9000 ポートにバインドされるので、ホストからアクセスしたい場合は EXPOSE でポートを公開しておく
FROM openjdk:11-jre-slim EXPOSE 9000 RUN apt-get update && apt-get install -y wget RUN wget -O firebase https://firebase.tools/bin/linux/latest \ && chmod u+x ./firebase \ && mv firebase /usr/local/bin ENTRYPOINT ["firebase", "emulators:start", "--only", "database"]
docker-compose.yaml
これに関しては特に言うことはない
version: "3.7" services: ...(snip)... firebase: build: context: . dockerfile: ./docker/firebase/Dockerfile volumes: - ./docker/firebase/firebase.json:/firebase.json
firebase.json
ポイントは Realtime Databse が bind するホストを 0.0.0.0 にするところ。 デフォルトでは localhost でリクエストを待ち受けているが、これでは firebase コンテナ外部からアクセスできないので、0.0.0.0 に変えておく必要がある
{ "emulators": { "database": { "host": "0.0.0.0", "port": 9000 } } }