簡體   English   中英

在Alpine Linux上運行npm install時出現奇怪的錯誤

[英]Strange errors when running npm install on alpine linux

Dockerfile:

FROM iron/node
RUN apk add --update bash && rm -rf /var/cache/apk/*
RUN apk add --update curl && rm -rf /var/cache/apk/*
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN npm install
CMD [ "node", "index.js" ]

docker構建日志:

Sending build context to Docker daemon 198.2 MB
Step 1 : FROM iron/node
 ---> 9ca501065d18
Step 2 : RUN apk add --update bash && rm -rf /var/cache/apk/*
 ---> Using cache
 ---> 0a03d023f33e
Step 3 : RUN apk add --update curl && rm -rf /var/cache/apk/*
 ---> Using cache
 ---> 3e0176dae102
Step 4 : WORKDIR /usr/src/app
 ---> Using cache
 ---> 3f9d925bd76c
Step 5 : COPY . /usr/src/app
 ---> 0c2c195505dd
Removing intermediate container de7cb9edede2
Step 6 : RUN npm install
 ---> Running in d7549ec2707d
Error relocating /usr/bin/node: uv_os_free_passwd: symbol not found
Error relocating /usr/bin/node: uv_os_get_passwd: symbol not found
The command '/bin/sh -c npm install' returned a non-zero code: 127

這是怎么回事? 這些錯誤是什么意思?:

Error relocating /usr/bin/node: uv_os_free_passwd: symbol not found
Error relocating /usr/bin/node: uv_os_get_passwd: symbol not found

如何解決這個問題?

不知道這是怎么回事。 我顯然沒有您的應用程序,但是我嘗試在公共模塊(例如newman )上進行npm安裝,但遇到了同樣的錯誤。 查看該映像的dockerhub頁面 ,我找到了Dockerfile-似乎正在卸載npm。 確實,當我直接運行該dockerfile時,沒有npm-因此,我不確定公共映像仍然具有該文件,除非此刻其構建過程有所中斷。

附帶說明一下,這樣做有點效率低下:

RUN apk add --update bash && rm -rf /var/cache/apk/*
RUN apk add --update curl && rm -rf /var/cache/apk/*

相反,您應該同時安裝bash和curl:

RUN apk add --update bash curl && rm -rf /var/cache/apk/*

結合所有這些步驟(即直接使用dockerfile並結合apk安裝),而不是卸載npm可以得到:

FROM iron/base:edge

RUN echo '@edge http://nl.alpinelinux.org/alpine/edge/main' >> /etc/apk/repositories
# RUN echo '@community http://nl.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories

RUN apk update && apk upgrade \
  && apk add nodejs@edge bash curl \
  && rm -rf /var/cache/apk/*

RUN npm install -g newman

這似乎工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM