【发布时间】:2016-04-17 22:04:27
【问题描述】:
我正在尝试从 docker 容器中挂载谷歌云存储桶并收到以下错误:
[root@cdbdc9ccee5b workdir]# gcsfuse -o allow_other --debug_gcs --key-file=/src/gcloud_service_account.json my-bucket-name /gcloud
Using mount point: /gcloud
Opening GCS connection...
Opening bucket...
daemonize.Run: readFromProcess: sub-process: mountWithArgs: mountWithConn: setUpBucket: OpenBucket: Bad credentials for bucket "my-bucket". Check the bucket name and your credentials.
我的凭据在我的主机上有效,但在正在运行的容器上无效。 API 说不要使用 root 进行连接,但您可以使用 -o allow_other 标志(熔断标志)覆盖它。任何想法都表示赞赏。
这是在 centos7 基础镜像上运行的
【问题讨论】:
-
可能是个愚蠢的问题,但您是否也将凭证文件添加到容器中?您是如何启动容器的,它是否具有运行 fuse 的正确权限?请注意,这里还有一个音量插件; github.com/coduno/docker-volume-gcs
-
是的,凭证文件肯定在 /src 目录中的主机上。我是这样启动容器的:
docker run -p 3000:3000 \ -e GOOGLE_APPLICATION_CREDENTIALS=/src/gcloud_service_account.json \ --name gcsfuseTest \ path/to/image来看看插件。不过,我计划在 Google Container Engine 上运行它。感谢您的回复。