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 (将#修改为@)