Docker Composeでfirestoreのローカル環境を構築
はじめに
Docker Composeを使って、Firestoreのエミュレーターを構築してみます。
Firestoreのエミュレーター
Firestoreのエミュレーターは、Firebase Local Emulator Suiteの一つで、ローカルでFirestoreを動かすことができるエミュレーターです。
Firestoreの他にも、Realtime DatabaseやCloud Functionsなどのエミュレーターも提供されています。
Firebase ローカル エミュレータ スイートの概要 | Firebase Local Emulator Suite
Firebase Local Emulator Suite は、さまざまな Firebase プロダクト エミュレータを使用してアプリのビルドとテストをローカルで行うことのできる、デベロッパー向けの高度なツールセットです。機能が豊富なユーザー インターフェースを備えており、アプリの本稼働やプロトタイピングにかかる時間を短縮できます。
Docker Composeで構築
今回は、下記のイメージを使ってFirestoreのエミュレーターを構築します。
unknown linkFirestoreの設定ファイルの準備
まずは、Firebaseの設定ファイルfirebase.json
と.firebaserc
を作成します。
1{
2 "emulators": {
3 "singleProjectMode": true,
4 "firestore": {
5 "port": 8080,
6 "host": "0.0.0.0"
7 },
8 "ui": {
9 "enabled": true,
10 "host": "0.0.0.0",
11 "port": 4000
12 }
13 }
14}
1{
2 "projects": {
3 "default": "test-project"
4 }
5}
docker-compose.yamlの作成
次に、docker-compose.yaml
を作成します。
作成した設定ファイルをマウントして、4000ポートと8080ポートへポートフォワーディングをしています。
1version: "3"
2services:
3 firestore-emulator:
4 image: andreysenov/firebase-tools:latest
5 ports:
6 - "8080:8080"
7 - "4000:4000"
8 volumes:
9 - "./firebase.json:/home/node/firebase.json"
10 - "./.firebaserc:/home/node/.firebaserc"
11 command: ["firebase", "emulators:start"]
コンテナの起動
Docker Composeでコンテナを起動します。
1docker compose up -d
コンテナが起動したら、http://localhost:4000/
でFirestoreのエミュレーターのUIにアクセスできます。Firestoreのエミュレーターのみ"Of"になっているのが確認できます。
"Go to firestore emulator"をクリックすると、FirestoreのエミュレーターのUIにアクセスできます。
参考
- Firebase ローカル エミュレータ スイートの概要 | Firebase Local Emulator Suite
- AndreySenov/firebase-tools-docker: Dockerfile for firebase-tools image
- andreysenov/firebase-tools - Docker Image | Docker Hub