我正在尝试从docker容器中安装Google云端桶,并收到以下错误:
[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基础图像上运行
答案 0 :(得分:3)
更新:我能够安装gcsfuse。我必须使用--priviledged
选项运行docker。 (感谢#thaJeztah的面包屑!)
答案 1 :(得分:2)
根与不是这里的红鲱鱼;有问题的凭证是GCS凭证。
有关将GCS凭据交给gcsfuse的文档,请参阅here。最简单的方法是使用您最初配置GCE VM的凭据(假设您在GCE上运行),这使得运行gcsfuse通常无需任何进一步的工作。但如果这不起作用,您可以使用标记--key-file
为gcsfuse提供从Google Developers Console下载的JSON密钥文件的路径。
答案 2 :(得分:1)
您真的想避免使用x=c('a', 'b', 'c', 'd', 'e')
y=1:length(x)
x=factor(x)
plot(x, y)
选项运行容器。
我相信您只需要添加SYS_ADMIN功能并访问--privileged
设备即可。
/dev/fuse