首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >云函数构建错误-无法从镜像的配置文件中获取操作系统

云函数构建错误-无法从镜像的配置文件中获取操作系统
EN

Stack Overflow用户
提问于 2021-05-01 01:38:49
回答 3查看 1.5K关注 0票数 20

当我尝试部署一个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。保留这条规则很重要,因为我不想为不必要的存储付费,但它似乎是我们这里问题的根源。谷歌的人能调查一下吗?

EN

回答 3

Stack Overflow用户

发布于 2021-05-04 01:55:42

我得到了相同的错误,即使是之前成功部署的代码也是如此。

解决方法是删除Container Registry中失败的Firebase功能的Docker镜像,然后重新部署这些功能。(将在部署时重新创建映像。)

这个错误仍然是零星发生的,所以我怀疑这可能是Firebase部署过程中引入的错误。值得庆幸的是,上面的解决方法在每次出现错误时都能解决这个问题。

票数 16
EN

Stack Overflow用户

发布于 2021-05-05 21:28:54

我也遇到了同样的问题,并通过删除Firebase项目容器注册表中的镜像解决了它。

我当时写了一个脚本,我会把它放在这里。其用法如下。如果你喜欢的话请使用它。

Google Cloud SDK.

  1. Edit CONTAINER_REGISTRY安装到您的注册表名称。例如:CONTAINER_REGISTRY=asia.gcr.io/project-name/gcf/asia-northeast1
  2. Grant execute权限。- $ chmod +x script.sh
  3. Execute it。- $ sh script.sh
  4. Deploy你的函数。
票数 4
EN

Stack Overflow用户

发布于 2021-05-04 16:29:30

在过去的几天里,我遇到了同样的问题,并正在与支持人员联系。我有相同的日志,在我的例子中,它没有连接到工件,因为工件在部署时自动重建自己(下面阅读与工件相关的微妙案例以及如何修复它),但删除函数和重新部署为我解决了这个问题。

工件自动清理

请注意,如果工件存储桶为空,则问题出在其他地方。

但是如果它不是空的,你可以做的是解决任何可能与工件自动清理相关的问题,就是在应该解决它的工件中手动删除整个“容器”文件夹。然后重新部署即可。确保不要删除工件存储桶本身!

在你提到的问题中,移除工件内容是安全的,这一点来自firebase confirmed

因此,下面是删除它的方法:

  1. 转到谷歌云控制台,选择您的项目->存储->浏览器https://console.cloud.google.com/storage/browser

  1. 选择"artifacts“存储桶

  1. 选择"containers“并将其删除

如果问题出在这里,在那之后它应该会工作得很好。

这是因为您在问题中引用的删除规则检查每个文件的“最后更新”时间戳,而在重新部署时只更新一些文件。因此,第二天,规则将删除一些文件,而留下其他文件,这将导致在这种情况下存储桶的状态不一致。因此,您只需手动删除所有内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67338215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档