ローカル環境が依存していた社内用AWSを削除する流れが進みつつあるので、当初はLocalStackを導入する予定でしたが、Flociの導入を試してみました。
LocalStackにしなかったのは、つい最近有料プラン前提になったということを知り、
更にはアカウントの登録等が必要ということで、想定とは異なってしまっていたためです。
代わりになるものないかーと見つけたのがFlociです。
今回は、既存のDocker Compose環境にFlociを追加し、ブラウザで表示するところまでやってみたのでメモ的に紹介です。
環境
- 既存のDocker Compose環境に追加
- Webサーバーは
steveltn/https-portalを利用 - アプリケーションは CakePHP4
今回は既存環境への後付け導入だったため、なるべく他のコンテナに影響を与えない形で追加しています。
Flociを追加
まずはFlociを追加します。
services:
floci:
image: hectorvent/floci:latest-aws
container_name: floci
user: root
ports:
- "4566:4566"
environment:
FLOCI_HOSTNAME: floci
FLOCI_DEFAULT_REGION: ap-northeast-1
FLOCI_DEFAULT_ACCOUNT_ID: "000000000"
FLOCI_STORAGE_MODE: hybrid
AWS_DEFAULT_REGION: ap-northeast-1
AWS_ACCESS_KEY_ID: "000000000"
AWS_SECRET_ACCESS_KEY: dummy
volumes:
- ./docker/floci/data:/app/data
- ./docker/floci/init/init.sh:/etc/floci/init/ready.d/01-init.sh:ro
networks:
default:
aliases:
- web.floci
初回起動でバケットなど必要なものを作成するためにinitも設定。
aliasはwebコンテナ内から呼び出すために設定。
UIを追加
MinIOみたいに、ブラウザからもファイルを操作できたらと調べていたら、
UIもあるとのことで、こちらも追加。
services:
floci-gui:
image: ghcr.io/floci-io/floci-ui:latest
container_name: floci-gui
ports:
- "3000:3000"
depends_on:
- floci
起動後、ブラウザからアクセスします。
http://localhost:3000
それっぽい画面が表示されました。AWS風らしいです。(ちょっと思ってたのと違う)
右上の「CLOUD」という部分を切り替えると他の見た目風にも変更できます。

バケット一覧
下に一覧がでます。
オブジェクト一覧
更に下に一覧がでます。縦に長くなっていくタイプでした。
ファイルアップロード
ブラウザから直接ファイルをアップロードできます。
複数指定や、フォルダごとなどのアップロードには対応していないみたいです。
また、D&Dでのアップロードにも対応していませんでした。
この辺りはMinIOの方が断然使い勝手はよいですね。
大量のファイルを一気に入れたい場合は、ソース側から直接入れたほうが良さそうです。
触ってみた感想
UIはもう少しMinIOのような操作感を求めていたので、
D&Dできないとかは少し不便ですが、S3だけでなく他のDynamo DBも使用するので、
1つコンテナを増やすだけで使えるのはとても便利ですね。
しばらく触りながら、実際の開発でどこまで使えるのかをもう少し試してみようと思います。
参考

