我正在尝试从 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 标志( fuse 标志)覆盖它。任何想法表示赞赏。
这是在 centos7 基础镜像上运行的
最佳答案
Root 与 not 在这里是一个红鲱鱼;有问题的凭据是 GCS 凭据。
见 here有关将 GCS 凭证交给 gcsfuse 的文档。最简单的方法是使用您最初配置 GCE VM 的凭据(假设您在 GCE 上运行),这通常使运行 gcsfuse 无需任何进一步努力即可工作。但如果这不起作用,您可以使用标志 --key-file
为 gcsfuse 提供您从 Google Developers Console 下载的 JSON key 文件的路径。
关于docker - 使用 gcsfuse 在 docker 容器中挂载谷歌云存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758090/