微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

boost::filesystem 在 Google Cloud Run 中不起作用使用 gVisor

如何解决boost::filesystem 在 Google Cloud Run 中不起作用使用 gVisor

我使用 C++ 应用程序创建了一个 docker 容器 (ubuntu:focal),该应用程序在处理数据时使用 boost::filesystem (v1.76.0) 创建一些目录。如果我在本地运行容器,它会起作用,但在部署到 Cloud Run 时它会失败。

简单的语句如

boost::filesystem::exists(boost::filesystem::current_path())

失败,“无效参数'/current/path/here'”在这个 C++ 应用程序中不起作用,但从运行等效语句的 Python 应用程序中它确实起作用。

阅读 the docs 我可以看到 Cloud Run 正在使用 gvisor 并且并非完全支持所有系统调用链接https://gvisor.dev/docs/user_guide/compatibility/linux/amd64/),但我希望简单的调用可以工作:检查目录是否存在,创建目录,删除,...

也许我在部署容器时做错了什么。有没有办法解决它?我可以使用任何 boost 配置来防止它使用某些系统调用吗?

感谢您的帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。