首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AppEngine灵活环境上挂载GCS存储桶

在AppEngine灵活环境上挂载GCS存储桶
EN

Stack Overflow用户
提问于 2017-10-07 21:37:10
回答 1查看 680关注 0票数 1

我正在尝试使用gcsfuse在AppEngine灵活环境应用程序上挂载GCS bucket。

我的Dockerfiles包含以下内容:

代码语言:javascript
复制
# gscfuse setup
RUN echo "deb http://packages.cloud.google.com/apt cloud-sdk-jessie main" | tee /etc/apt/sources.list.d/google-cloud.sdk.list
RUN echo "deb http://packages.cloud.google.com/apt gcsfuse-jessie main" | tee /etc/apt/sources.list.d/gcsfuse.list
RUN wget -qO- https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
RUN apt-get update && apt-get install -y --no-install-recommends google-cloud-sdk gcsfuse strace
RUN gcsfuse --implicit-dirs my_bucket my_dir

我从here那里学到了大部分内容。这几乎就是安装gcsfuse和--no-install-recommends的标准方式。

如果我以这种方式启动一个应用程序,它不会挂载驱动器。这对我来说并不太令人惊讶,因为它似乎不像是灵活环境的一个受支持的特性。

这是令人困惑的部分。如果我先运行gcloud app instances ssh "<instance>",然后再运行container_exec gaeapp /bin/bash,那么gcsfuse my_bucket my_dir就能正常工作。

但是,如果我运行gcloud app instances ssh "<instance>" --container gaeapp,则gcsfuse my_bucket my_dir会失败,并显示以下错误:

代码语言:javascript
复制
fusermount: failed to open /dev/fuse: Operation not permitted

这与我在main.py中将gcsfuse作为子进程运行时得到的错误相同。

基于这个unresolved thread,我运行了strace -f,并看到了与该用户完全相同的问题,一个EPERM问题。

代码语言:javascript
复制
[pid    59] open("/dev/fuse", O_RDWR)   = -1 EPERM (Operation not permitted)

无论我以哪种方式登录到容器(或者如果我从main.py运行子进程),我都是根用户。如果我运行export,那么我确实看到了不同的变量,所以运行的内容有一些不同,但对我来说,其他一切看起来都是一样的。

我看到的其他建议包括使用gcsfuse标志-o allow_other-o allow_root。这些都不起作用。

如果我尝试在不能运行gcsfuse的登录上运行umount,即使我是根用户,它也会显示"must be superuser to unmount",这可能是一个线索。

看起来可能有一些我不理解的安全设置。然而,既然理论上我可以让main.py触发一个外部程序为我登录并运行gcsfuse,那么似乎应该有一种方法可以让它工作,而不必这样做。

EN

回答 1

Stack Overflow用户

发布于 2017-10-12 04:01:40

RUN命令用于为dockerfile创建一个新的层,因此您实际上是在创建映像时运行该命令,这是Flex构建系统不喜欢的。

我不确定为什么在应用程序中的外壳不起作用,你可以尝试在python子进程中‘sudo’它,或者可能通过将'gcsfuse setup &&‘添加到dockerfile的入口点来将它推出应用程序代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46620802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档