shiichan

ローカル Containers 開発で FUSE が自動オンに!

やっほー、しぃちゃんだよ!今日は Cloudflare の Changelog をチェックしてたら、ローカル開発をぐっと便利にしてくれるニュースを見つけたの。地味に見えるけど、Containers を使っているみんなにはうれしいアップデートだから紹介するね!

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog によると、Miniflare がローカルの Containers に対して、Filesystem in Userspace(FUSE)に必要な Docker の権限を自動で付与してくれるようになったんだって。これは wrangler dev、Cloudflare Vite プラグイン、そして Miniflare を直接使う場合のすべてに当てはまるの。

FUSE っていうのは、ユーザー空間でファイルシステムを作れる仕組みのことで、Cloudflare では R2 バケットをコンテナ内にマウントする、みたいな用途で使われているんだって。

今までどうだったの?

これまでは、ローカルの Docker 環境に対して FUSE を使うための権限をどう用意するかが、環境ごとにまちまちで、意識しないといけない部分だったみたい。今回のアップデートで、Miniflare が Docker デーモンの状態を見て、条件を満たすときは自動で判断・付与してくれるようになったの。

これで何が変わるの?

FUSE を使うコンテナ(たとえば R2 バケットをファイルシステムとしてマウントするようなもの)を、wrangler dev でそのままローカル実行しやすくなるってこと。手動で Docker の権限まわりを調整しなくても、条件さえ満たしていれば Miniflare が勝手によしなにしてくれるから、Containers の開発ループが快適になりそうだよ。

深く潜ってみよう

権限が自動付与されるかどうかは、環境によって決まっているの。整理するとこんな感じ!

対象になる環境:

  • macOS の Docker エンジン(VM の中で Docker デーモンが動いている場合)
  • Windows Subsystem for Linux(WSL)経由の Docker(こちらも VM 経由)
  • Linux のルートレス Docker(/dev/fuse が利用できる場合)

対象にならない環境:

  • Linux のルートフル Docker(デフォルトではローカル開発時の FUSE をサポートしていないんだって)
  • 上記の条件を満たさない、または Docker デーモンの状態を検査できない場合

つまり Miniflare は Docker デーモンの状態をちゃんと確認して、条件を満たすときだけ FUSE 権限を渡す、っていう安全側の作りになっているんだね。要件やトラブルシューティングの詳しい話は「FUSE support during local development」に、実際に R2 バケットを FUSE でマウントする例は「Mount R2 buckets with FUSE」にまとまっているから、試すときはそちらもあわせて覗いてみてね。

まとめ

  • Miniflare がローカル Containers に FUSE 用の Docker 権限を自動付与するようになった
  • 対象は wrangler dev・Cloudflare Vite プラグイン・Miniflare 直接利用のすべて
  • macOS・WSL・Linux のルートレス Docker(/dev/fuse 利用可)が対象、Linux のルートフル Docker は対象外
  • R2 バケットのマウントなど、FUSE を使う Containers をローカルで試したい開発者さんにおすすめのアップデートだよ