会社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
めでたしめでたし。