M1芯片上Docker构建OpenLDAP失败,请求确认原因
M1芯片Docker运行OpenLDAP出现newosproc错误的原因确认
你的判断是正确的,这个错误确实由M1芯片的arm64架构导致,具体原因如下:
- 你使用的OpenLDAP镜像大概率是基于x86_64架构构建的,在M1的arm64环境下运行时,Docker依赖Rosetta 2转译执行,但转译过程中线程创建机制存在兼容性问题,触发了
newosproc错误(errno=22对应参数无效或不支持的系统调用)。 - 日志中证书生成环节用到的Go语言工具,老版本Go在arm64转译环境下的线程创建逻辑存在缺陷,直接引发了这个致命错误。
可行的解决办法:
- 切换到支持arm64架构的OpenLDAP镜像,比如
osixia/openldap:latest-arm64v8,这类镜像专为arm64平台适配,无需转译即可正常运行。 - 若必须使用x86_64镜像,尝试升级Docker Desktop到最新版本,新版对Rosetta转译的线程兼容性做了优化。
内容的提问来源于stack exchange,提问作者pythonNovice
相关产品推荐
相关产品推荐

