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

スタートアップの自動化に、正解はない。地道な積み重ねが、一番効いている。

テーマ探しは「現場に行く」と「AIに見つけてもらう」のハイブリッドで。

「AIが人類を滅ぼす」という議論と、日々AIを使う実践者から見える景色

LPを作るだけでは人は来ない。集客の「探す」もAIに任せ始めた

AIで自動化しても質を落とさない、秘伝のタレの作り方

AIで自動化したけど59テーマ中LPまで進んだのは37.3%だった

AIのスピードに、人間がついていけない。その現実を受け入れることが、長く付き合うコツだった。

AIが補った部分が、意図と違っていることがある。確認を怠らないことは変わらなかった。

AIは聞けば全部答えてくれる。でも「今これは考えなくていい」と捨てるのは、人間の仕事だった。

本を書きました PMで失敗するプロジェクトをこれ以上増やしたくない——25年分の経験を1冊にしました