我正在运行带有coreos容器的Google计算实例(图片名称:coreos-stable-1688-4-0-v20180327
)。使用gsutil
将文件从存储复制到本地文件系统似乎工作正常 - 除了文件系统上没有任何所谓的复制文件。在不使用容器的情况下在计算实例上运行相同的复制命令确实有效,所以我想问题就在于容器。但是,我不确定容器导致副本失败的原因。
命令为gsutil cp -r gs://my-bucket ./
。
答案 0 :(得分:1)
您正在遇到https://github.com/GoogleCloudPlatform/gsutil/issues/453中描述的问题。为gsutil
设置的别名在容器中运行gsutil(无法访问主机文件系统),因此文件被复制到该容器的文件系统,而不是你的GCE主持人。在该主题中建议了一些解决方法。
编辑以获得更好的阅读 (来自GitHub问题线程的信息):
看起来GCE VM为gsutil设置了漂亮的别名:
$ type gsutil
gsutil is aliased to `(docker images google/cloud-sdk || docker pull google/cloud-sdk) > /dev/null;docker run -t -i --net=host -v /home/<USER>/.config:/root/.config google/cloud-sdk gsutil'
CoreOS实例上的可能的解决方法:
git checkout <tag>
以获取最新版本的提交,通过these instructions安装Python,然后确保直接在CoreOS上运行gsutil的本地副本主机,而不是运行容器化版本的gsutil。gsutil
别名,或者创建一个新别名,以便在容器上安装主机文件系统的某些部分;这允许您在容器终止后访问新写入的文件。