Tech

Docker コンテナ上でgoofysを使ったAWS S3バケットマウント

2020年7月13日

あるディレクトリをS3バケットにマウントするため、Golangで書かれたライブラリgoofysを使うことに。

goofysを使うと、EC2のAmazon Linux上で極めて簡単にバケットをマウントできるんですが、Dockerコンテナ上でマウントしようとしたら少しハマったので備忘メモを残しておきます。

以下はDocker for Windows (Windows 10) で検証した内容です。


ハマった箇所

普通にgoofysコマンドでマウントしようとすると下記エラーが出現。

main.FATAL Unable to mount file system, see syslog for details

まずは指示の通り、syslogをみてみる。

/go/bin/goofys[6420]: main.FATAL Mounting file system: Mount: mount: running fusermount: exit status 1#012#012stderr:#012fusermount: fuse device not found, try 'modprobe fuse' first#012

この段階でfuse、goofysともに正常にインストールされているはず。なぜ…?

 

原因と解消法

解決策を検索してみるとgithubに見つけました。

どうやら原因はdockerコンテナ上でfuseのカーネルモジュールが読み込めていないためのようです。

docker-composeファイルに以下を付け足します。

devices:
- "/dev/fuse:/dev/fuse"
cap_add:
- SYS_ADMIN

参照:Compose ファイル・リファレンス

 

これで再度マウントを試行してみます。

$ goofys [s3バケット名] [マウントポイント] 

エラーなし。

syslogをみても、ちゃんとマウントできているようです。

main.INFO File system has been successfully mounted.

 

  • この記事を書いた人

nextpenguin

システム開発・プログラミングのしごとやっています。甘味とコーヒーは生命線。日常での学びを記事にしています。

人気の記事

1

先日の記事では、初心者からフリーランスプログラマーになる難しさと、それでもなんとか稼げるようになるにはどうしたらいいか解説しました。 今回の記事では、稼げるフリーランサーになるために必要な要素を、もう ...

2

気休めだけの甘い言葉は書きません。 最近は多くの企業やサイトで、使い捨てられるプログラマーが欲しいがために、甘い言葉で初心者プログラマを誘い出しています。 この記事では、まずは「現実」をちゃんと理解し ...

3

Vuetifyの v-progress-circular コンポーネントは、数値データや処理状況を環状(円状)のデザインで教えてくれるUIデザインです。 ローディングのスピナー(処理中のマーク)として ...

4

※画像はずとまよの新曲とは一切関係ありません   ずっと真夜中でいいのに。(以下、ずとまよ)の新曲『勘ぐれい』のMVが12月1日に公開されましたね。 MV前に公開されていた原曲を聴き、神曲な ...

5

Vuexのstore(ストア)を使うと、各コンポーネント間で個別にデータのやり取りすることなく、データを一元的に管理できます。Vueでは欠かせない機能といえるでしょう。 state(変数、コンポーネン ...

-Tech
-, ,

© 2021 スターレイヴ