当我尝试部署一个Cloud Function时,我看到这个Cloud Build错误:
“第2步-”分析器“:[31;1mERROR:[0m无法初始化缓存:无法创建映像缓存:访问缓存映像"us.gcr.io/MY_PROJECT/gcf/us-central1/SOME_KEY/cache:latest":无法从映像'us.gcr.io/MY_PROJECT/gcf/us-central1/SOME_KEY/cache:latest'”的配置文件中获取操作系统
我可以在本地构建和模拟云函数,但是由于这个错误,我不能部署它。直到现在,我才能够很好地部署。我到处都找过了,但找不到任何关于这方面的讨论。有人知道这是怎么回事吗?
更新:我在3天前部署了一个新函数,但现在似乎无法对其进行更新。我得到了同样的错误。我相当确定这是由于我设置的生命周期规则,以确保我不会一直存储函数的图像:Firebase storage artifacts is huge and keeps increasing。保留这条规则很重要,因为我不想为不必要的存储付费,但它似乎是我们这里问题的根源。谷歌的人能调查一下吗?
发布于 2021-05-04 01:55:42
我得到了相同的错误,即使是之前成功部署的代码也是如此。
解决方法是删除Container Registry中失败的Firebase功能的Docker镜像,然后重新部署这些功能。(将在部署时重新创建映像。)
这个错误仍然是零星发生的,所以我怀疑这可能是Firebase部署过程中引入的错误。值得庆幸的是,上面的解决方法在每次出现错误时都能解决这个问题。
发布于 2021-05-05 21:28:54
我也遇到了同样的问题,并通过删除Firebase项目容器注册表中的镜像解决了它。
我当时写了一个脚本,我会把它放在这里。其用法如下。如果你喜欢的话请使用它。
CONTAINER_REGISTRY安装到您的注册表名称。例如:CONTAINER_REGISTRY=asia.gcr.io/project-name/gcf/asia-northeast1$ chmod +x script.sh$ sh script.sh发布于 2021-05-04 16:29:30
在过去的几天里,我遇到了同样的问题,并正在与支持人员联系。我有相同的日志,在我的例子中,它没有连接到工件,因为工件在部署时自动重建自己(下面阅读与工件相关的微妙案例以及如何修复它),但删除函数和重新部署为我解决了这个问题。
工件自动清理
请注意,如果工件存储桶为空,则问题出在其他地方。
但是如果它不是空的,你可以做的是解决任何可能与工件自动清理相关的问题,就是在应该解决它的工件中手动删除整个“容器”文件夹。然后重新部署即可。确保不要删除工件存储桶本身!
在你提到的问题中,移除工件内容是安全的,这一点来自firebase confirmed。
因此,下面是删除它的方法:
如果问题出在这里,在那之后它应该会工作得很好。
这是因为您在问题中引用的删除规则检查每个文件的“最后更新”时间戳,而在重新部署时只更新一些文件。因此,第二天,规则将删除一些文件,而留下其他文件,这将导致在这种情况下存储桶的状态不一致。因此,您只需手动删除所有内容。
https://stackoverflow.com/questions/67338215
复制相似问题