Docker NPM安装时出现奇怪的Git错误

wribegjk  于 2023-11-17  发布在  Docker
关注(0)|答案(4)|浏览(154)

我有一个工作的Dockerfile,直到一天前,它似乎只是打破。我没有对我的依赖项进行任何更改-但我得到了以下错误:

[91mnpm ERR! code ENOGIT
[0m
[91mnpm ERR! No git binary found in $PATH
npm ERR! 
npm[0m
[91m ERR! Failed using git.
npm ERR! Please check if you have git installed and in your PATH.
[0m
[91m
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2017-09-28T21_12_50_050Z-debug.log
[0m
Removing intermediate container be9d5bfe5521

The command '/bin/sh -c npm install' returned a non-zero code: 1

字符串
这是超级奇怪的,因为这是以前没有发生过的。我还附加了我的Dockerfile。到目前为止,我已经尝试添加git(第三行),并尝试导出路径。似乎没有工作。

FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y git

FROM node:alpine

RUN npm install sails -g
#RUN npm install git -g
#RUN export PATH="$HOME/usr/bin/git:$PATH"

RUN mkdir -p /service/app
WORKDIR /service/app

COPY package.json /service/app
RUN npm install

COPY . /service/app

EXPOSE 80

CMD NODE_ENV=production sails lift

ljsrvy3e

ljsrvy3e1#

其中一个原因可能是您在Dockerfile中使用的是精简版本的node:
FROM node:8-slim
我假设这不包括git,因为当我更改为完整版本时,错误就消失了:
FROM node:8.11.2

eaf3rand

eaf3rand2#

尝试以下操作:

RUN apk update && \
    apk add --update git && \
    apk add --update openssh

字符串
docker容器中的git二进制文件在/usr/bin/git上可用

njthzxwz

njthzxwz3#

我也遇到了同样的问题。这是由于缺乏git。下面是它是如何工作的

FROM node:alpine
RUN apk add git
RUN npm install ...

字符串

gudnpqoy

gudnpqoy4#

我知道这是一个老问题,但我注意到没有一个答案解决了你的问题的根本原因,即使添加RUN apk add git可以解决它。
在你的Dockerfile中,你有两个FROM,但是很明显,你没有把它们用于Multi-stage builds,这意味着你做错了。你添加的git子句在那里没有用(你的第一个from相关子句也没有用)。
添加git子句应该添加到第二个from子句FROM node:alpine,对于alpine,应该使用apk add而不是apt-get install(这是ubuntu)

相关问题