我创建了一个ubuntu:focal
带有 C++ 应用程序的 docker 容器 (),该应用程序使用boost::filesystem
(v1.76.0) 在处理数据时创建一些目录。如果我在本地运行容器,它可以工作,但在部署到 Cloud Run 时它会失败。
一个简单的语句,如
boost::filesystem::exists(boost::filesystem::current_path())
因“无效参数'/current/path/here'”而失败。它在这个 C++ 应用程序中不起作用,但在运行等效语句的 Python 应用程序中,它确实起作用。
阅读文档我可以看到 Cloud Run 正在使用 gVisor 并且并非所有系统调用都得到完全支持(链接:https ://gvisor.dev/docs/user_guide/compatibility/linux/amd64/ ),但我希望简单调用工作:检查目录是否存在,创建目录,删除,...
也许我在部署容器时做错了什么。有没有办法解决它?我可以使用任何boost
配置来防止它使用某些系统调用?
谢谢你的帮助!