如何修复 Node 项目在 Apple Silicon 上 Docker 构建失败的问题
我在一个 React 和 Node 仓库中遇到了这个问题,该仓库由多名开发人员通过 Docker Compose 使用。问题在于镜像在 Intel 笔记本上可以顺利构建,但在较新的 Apple Silicon 机器上安装原生依赖时却失败了。起初我以为是随机的 npm 缓存问题,但只要容器内的 node-gyp 编译可选包时,它就会出现。这导致新入职的工程师无法在本地运行应用程序,且由于只有两台笔记本电脑能复现 Bug,代码审查进度也变慢了,所以我将其视为工作流故障,而不是一个小工单。 我的处理流程是收集 Docker 构建日志、package-lock 的变更以及通过 uname -m 显示的容器架构,并将其与 Dockerfile、npm ci 和 arm64 基础镜像进行比对。首先,我将 Node 基础镜像固定为多架构标签,并在不使用本地层缓存的情况下重新构建。然后,我检查了哪些依赖…