如何在多阶段docker文件中pnpm和Next.js?

Meg*_*lio 16 node.js dockerfile next.js docker-multi-stage-build pnpm

如果我切换npmpnpm.

我应该如何修改该 Dockerfile 以使其保持多阶段,但也使用pnpm而不是npm

小智 20

另一个解决方案是使用 npm 安装 pnpm。当您安装 Nodejs 时,它会使用 npm 作为默认包管理器。因此,您可以使用以下命令使用 npm 安装 pnpmnpm install -g pnpm

在 docker 文件中它将被写为;

RUN npm install -g pnpm
Run Code Online (Sandbox Code Playgroud)


小智 8

对我有用的是以下内容:

FROM node:16-alpine AS base
RUN apk update && apk add --no-cache libc6-compat
RUN corepack enable && corepack prepare pnpm@7.4.1 --activate 
...
Run Code Online (Sandbox Code Playgroud)

以上假设您使用的是 >=Node 16.9 或 >=Node 14.19;其内置corepack命令.


小智 7

我知道我有点晚了,但这对我有用:

RUN apk add --no-cache curl \
    && curl -sL https://unpkg.com/@pnpm/self-installer | node
Run Code Online (Sandbox Code Playgroud)