我正在尝试使用 Makefile 基于公共 AWS 映像构建映像。构建过程所做的第一件事就是成功拉取该映像。拉取镜像后,立即出现以下失败:
assertion failed [!result.is_error]: Failed to create temporary file
(ThreadContextFcntl.cpp:84 create_tempfile)
make: *** [xxxxxxxxx] Error 133
我在配备 M3 Max 芯片的较新 MacBook Pro 上运行此程序。 Docker 是随 Homebrew 一起安装的,如果这很重要的话。我的第一个假设是我没有为守护进程提供足够的资源。不过,我已将核心数量增加到允许的最大值,并给予 9GB 内存、2GB 交换空间和 496GB 虚拟磁盘限制。我仍然看到失败,所以我很确定这不是磁盘空间限制的问题。我没有找到与退出代码 133 相关的任何其他内容,除了它基于
signal 5
退出代码(SIGTRAP)。我不知道这对我有什么帮助。任何帮助将不胜感激!
这是 Docker Desktop 和 Rosetta 模拟的问题。
要修复,请禁用该设置
Use Rosetta for x86_64/amd64 emulation on Apple Silicon
。
来源(我在遇到此问题时找到了解决方案):https://pkg.go.dev/github.com/kyma-project/serverless/components/serverless#readme-symptom-1
禁用 Rosetta 充其量只是一种解决方法,但这绝不是问题的解决方案。真正的解决方案必须不会造成性能的显着损失(这就是禁用 Rosetta 的作用)。