【问题标题】:Docker build not working with NextJS on node:alpine with SWCDocker 构建不适用于节点上的 NextJS:带有 SWC 的高山
【发布时间】:2022-02-17 19:10:15
【问题描述】:

我有一个 NextJS 应用程序,我想将它构建到一个 docker 映像中并稍后作为容器运行。我正在使用来自https://nextjs.org/docs/deployment#docker-image 的 Dockerfile。

当我运行 docker build . 时,一切正常,直到第 10/23 步:

yarn run v1.22.15
$ next build

info  - Checking validity of types...
info  - Creating an optimized production build...

Error: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /app/node_modules/@next/swc-linux-x64-gnu/next-swc.linux-x64-gnu.node)

我发现这是由SWC和alpine引起的,但是有人知道如何解决这个问题吗?

也许这会有所帮助:https://github.com/vercel/next.js/issues/30713

【问题讨论】:

  • 一般来说,如果您在基于 Alpine 的映像上看到莫名其妙的共享库问题,切换到基于 Debian 或 Ubuntu 的映像会以相对较小的空间成本解决这些问题。如果这不是您的问题,您能否编辑问题以包含 minimal reproducible example 而不仅仅是错误消息?

标签: node.js linux docker next.js alpine


【解决方案1】:

对于我们来说,一些团队成员使用旧版本的 npm,这在 package-lock.json 中产生了问题。

解决方案是从项目中删除node_modulespackage-lock.json 并运行npm install

注意:如果正在构建 docker 映像并且您的 dockerfile 具有 COPY package*.json ./ 行,则必须将新的 package-lock.json 更新到将要进行构建的存储库

【讨论】:

    【解决方案2】:

    RUN rm -r node_modules/@next/swc-linux-x64-gnu

    添加 yarn install 实际上修复了该错误

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2019-11-27
    • 2019-05-11
    • 2020-06-05
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多