【发布时间】:2020-02-23 15:56:33
【问题描述】:
我正在尝试使用 s3fs 设置一个 Docker Ubuntu 映像,该映像具有作为本地文件系统安装的 AWS s3 存储桶。有几个指南,大多像this one,说要安装各种apt 包,设置~/.passwd-s3fs 文件,然后运行s3fs。然而,在最新版本的 Ubuntu 中(我已经尝试过 16.04、18.04 和最新版本),它说我应该安装包 linux-headers-4.9.184-linuxkit——但是这似乎在任何地方都不可用。我被卡住了。
我的本地 Mac 上运行良好,但无法在我的 Ubuntu 映像上运行。
$ apt-get update
$ apt-get install -y awscli
$ apt-get install -y automake autotools-dev fuse g++ git libcurl4-gnutls-dev libfuse-dev libssl- dev libxml2-dev make pkg-config kmod
$ apt-get install -y s3fs
$ echo key:secretkey > ~/.passwd-s3fs && chmod 0600 ~/.passwd-s3fs
$ mkdir /s3mountpoint
$ s3fs mybucketname /s3mountpoint
fuse: device not found, try 'modprobe fuse' first
$ modprobe fuse
modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.9.184-linuxkit/modules.dep.bin'
modprobe: FATAL: Module fuse not found in directory /lib/modules/4.9.184-linuxkit
我也尝试过克隆和手动编译 https://github.com/s3fs-fuse/s3fs-fuse.git 但这给了我同样的错误。
我怎样才能运行fuse ok,或者找到相关的旧版kernel-headers 包,以便在Ubuntu 上成功运行s3fs?
【问题讨论】:
-
我通过修改整个事情以使用 AWS Elastic Beanstalk 来解决这个问题,以便 awssdk 默认可用,并且 s3 集成开箱即用。显然这不是问题的真正解决方案,但无论如何对于我的用例来说它可能是一个更好的解决方案。
标签: docker ubuntu amazon-s3 fuse s3fs