在Dockerfile中使用PNPM安装GitHub依赖项

eqoofvh9  于 2022-11-28  发布在  Docker
关注(0)|答案(1)|浏览(972)

我在Dockerfile中使用pnpm,我有一个依赖项,它是从GitHub安装的。
默认情况下,PNPM使用yarn从Git安装依赖项。
PNPM的问题是它不能访问Yarn,我认为是某种权限问题。

错误:

ERR_PNPM_PREPARE_PKG_FAILURE命令失败,退出代码为1:/usr/本地/bin/纱安装
命令“/bin/sh -c pnpm install”返回了一个非零代码:1
这是我的Dockerfile

FROM node:alpine

RUN npm install -g pnpm

WORKDIR /app

COPY ["package.json", "pnpm-lock.yaml", "./"]

RUN pnpm install

COPY . .

RUN pnpm build

ENV PORT=8080

EXPOSE 80

CMD [ "node", "./build/index.js" ]

更新

这是从GitHub使用的存储库。Baileys
当我尝试安装没有Dockerfile的软件包时,一切都运行得很好。如果我运行pnpm install,一切都运行得很好。但是当我运行Dockerfile的build命令时,它会产生问题。
docker build -t name .

yks3o0rb

yks3o0rb1#

正如你所说的,pnpm使用yarn从Git安装依赖项。从输出中,你可以看到yarn失败了。如果你在Docker容器yarn add https://github.com/adiwajshing/Baileys.git中运行,它会输出:

info No lockfile found.
[1/4] Resolving packages...
error Couldn't find the binary git

node:alpine映像缺少git
要解决您的问题,只需在Dockerfile中的pnpm install之前安装git

FROM node:alpine
RUN apk add --no-cache git
RUN npm install -g pnpm
...

相关问题