DockerでFirestoreのエミュレータを動かす
環境
- OS: Arch Linux
- Docker: 19.03.12-ce build 48a66213fe
ファイル
Dockerfile
FROM node:12
RUN yarn global add firebase-tools && \
firebase setup:emulators:firestore && \
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \
apt update && \
apt install -y software-properties-common apt-transport-https && \
add-apt-repository -y https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ && \
apt update && \
apt install -y adoptopenjdk-11-hotspot
COPY conf/firebase.json .
CMD [ "firebase", "emulators:start", "--only", "firestore" ]
conf/firebase.json
{
"emulators": {
"firestore": {
"host": "0.0.0.0"
}
}
}
解説
firebase-tools のインストールと設定
FROM node:12
RUN yarn global add firebase-tools && \
firebase setup:emulators:firestore && \
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \
apt update && \
apt install -y software-properties-common apt-transport-https && \
add-apt-repository -y https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ && \
apt update && \
apt install -y adoptopenjdk-11-hotspot
COPY conf/firebase.json .
CMD [ "firebase", "emulators:start", "--only", "firestore" ]
{
"emulators": {
"firestore": {
"host": "0.0.0.0"
}
}
}
解説
firebase-tools のインストールと設定
firebase コマンドを利用するためにはnpmパッケージである firebase-tools をインストールしなければなりません。
なので、 yarn global add firebase-tools
として firebase-tools をインストールしています。
また、 Firebase の Firestore エミュレータ機能を設定するために firebase setup:emulators:firestore
を実行しています。
Java のインストール
Firestore のエミュレータを動かすためには Java が必要となるので、 AdoptOpenJDK をインストールします。
まず、GPGキーをインポートします。
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add -
続いて、パッケージリストを更新して、 apt-add-repository
を実行するために必要な software-properties-common とHTTPSリポジトリにアクセスするために必要な apt-transport-https をインストールします。
apt update
apt install -y software-properties-common apt-transport-https
最後にAPTリポジトリの追加とパッケージリストの更新を行って、 AdoptOpenJDK をインストールします。
add-apt-repository -y https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
apt update
apt install -y adoptopenjdk-11-hotspot
設定ファイルの配置
このままでもエミュレータを起動することは出来ます。
しかし、ホストが localhost になっているため、このコンテナ内からしかアクセス出来ません。
ホストや他コンテナからアクセスするためには、ホストを 0.0.0.0 としなければなりません。
なので、 firebase.json を用いてホストを設定します。
{
"emulators": {
"firestore": {
"host": "0.0.0.0"
}
}
}
これをCOPYによってカレントディレクトリに配置しています。
実行
あとは firebase emulators:start --only firestore
をCMDによって実行させると起動します。
⚠ emulators: You are not currently authenticated so some features may not work correctly. Please run firebase login to authenticate the CLI.
i emulators: Starting emulators: firestore
⚠ firestore: Did not find a Cloud Firestore rules file specified in a firebase.json config file.
⚠ firestore: The emulator will default to allowing all reads and writes. Learn more about this option: https://firebase.google.com/docs/emulator-suite/install_and_configure#security_rules_configuration.
i firestore: Firestore Emulator logging to firestore-debug.log
┌──────────────────────────────────────────────────────────────┐
│ ✔ All emulators ready! It is now safe to connect your apps. │
└──────────────────────────────────────────────────────────────┘
┌───────────┬──────────────┐
│ Emulator │ Host:Port │
├───────────┼──────────────┤
│ Firestore │ 0.0.0.0:8080 │
└───────────┴──────────────┘
Other reserved ports:
Issues? Report them at https://github.com/firebase/firebase-tools/issues and attach the *-debug.log files.
Author And Source
この問題について(DockerでFirestoreのエミュレータを動かす), 我々は、より多くの情報をここで見つけました https://qiita.com/m0pe/items/18d9521fd95229805f8f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .