Dockerで起動したFirebase emulatorのexportがうまくいかない場合
firebase-tools: v13.4.1
Docker: 20.10.12 (Docker for Mac)
発生条件
export先のパスにvolumeを直接指定したとき
code:yaml
version: '3'
services:
firebase_emulator:
build: . # ここは適宜
volumes:
- /firebase-export
# export先は--importの引数と同じ
原因
emulatorの実行中にデータを書き出しているtemp directoryの内容を終了時に全て書き出すときの処理(ソースコード) export先をrimrafでディレクトリごと削除
削除できないvolumeなのにrimrafはfailしない
rimraf最新版なら例外を吐くが、使われているのがv3
そのあと、temp dirをexport先にmove
volumeは消えていないのでdest already existsで異常終了
対処法
--import /firebase-export/dataのように内部のパスを指定する