Docker で s3fs を使う方法


会社Webサイトリニューアル の時にサーバの移設もした。移設先サーバを Docker ホスティング 環境にしてその上で Docker コンテナとして稼働させています。

その時に s3fs がうまく動かなくてちょっとはまったのでその解決方法を記します。

現象

s3fs をインストールして、コマンド実行する。

s3fs smartwp:/manage/uploads-st /home/shakesoul/Dropbox/SmartWP/demo00/html-staging/wp-content/uploads -o allow_other -o nonempty

すると以下のエラーが出てマウントできない。

fuse: failed to open /dev/fuse: Operation not permitted

調査

エラーメッセージをみても解決方法が浮かばないし、今まで s3fs をセットアップしてきた経験上はじめてのエラーだったので、おそらく Docker 環境だらか生じているのだろうな。と当たりをつけて Google でエラーメッセージを検索。

調べた結果、docker の github issue にあった。https://github.com/docker/docker/issues/9448

やっぱり同じようなことをしたい人は世の中にいる。

解決方法

docker run の時に --cap-add SYS_ADMIN--device /dev/fuse をつける。

実際の打ったコマンド docker run -d -p 80:80 -p 443:443 -p 8080:8080 -p 1122:22 --cap-add SYS_ADMIN --device /dev/fuse centos6.6:origin01

コンテナ上で s3fs コマンド実行と確認。

[shakesoul@05f602ff5289 ~]$ df -h | grep s3fs
s3fs                  256T     0  256T   0% /home/shakesoul/Dropbox/SmartWP/demo00/html-staging/wp-content/uploads
s3fs                  256T     0  256T   0% /home/shakesoul/Dropbox/SmartWP/demo00/html-production/wp-content/uploads
s3fs                  256T     0  256T   0% /home/shakesoul/Dropbox/SmartWP/shakesoul.net/html-staging/wp-content/uploads
s3fs                  256T     0  256T   0% /home/shakesoul/Dropbox/SmartWP/shakesoul.net/html-production/wp-content/uploads
s3fs                  256T     0  256T   0% /home/shakesoul/Dropbox/SmartWP/smartdesigning.me/html-staging/wp-content/uploads
s3fs                  256T     0  256T   0% /home/shakesoul/Dropbox/SmartWP/smartdesigning.me/html-production/wp-content/uploads

めでたしめでたし。

Related Posts

長沼公園 - お気に入りの場所

Flutter in_app_purchase で定期購入を実現する方法 2023年版

ペップのビルドアップ UEFA Champions League Final

テクニカルアドバイザー仕事が終わったのでまとめ

Amazon で Kindle とペーパーバックを作るやり方

[思考]老いへの許容

「ひとりスタートアップ」が本の形になりました

2022年を振り返る

ハードウエアのWeb化

本を書きました「ひとりスタートアップ」