2016-06-29 4 views
0

Dockerfile:奇妙なエラーが実行しているときに、NPM高山Linux上にインストール

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" ] 

ドッカビルドログ:

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 

この問題を解決するにはどうすればよいですか?

答えて

1

何が起こっているのかよく分かりません。私は明らかにあなたのアプリを持っていませんが、パブリックモジュール(例えばnewman)のnpmインストールをやってみましたが、同じエラーが発生しました。その画像のdockerhub pageを見ると、Dockerfileが見つかりました。これはnpmをアンインストールするようです。確かに、私がドッカーファイルを直接実行したとき、npmはありませんでした。だから、現時点で何らかの形でビルドプロセスが少し壊れていない限り、パブリックイメージがどういうものかは分かりません。

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

代わりに、あなたは同時にはbashやカールをインストールする必要があります:注意点として、それがこれを行うには少し非効率的だ

すべてのそれらのステップ(すなわちを組み合わせる
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 [email protected] bash curl \ 
    && rm -rf /var/cache/apk/* 

RUN npm install -g newman 

それはうまくいくように見えました。

関連する問題