命令“/bin/sh -c npm install”返回一个非零代码:1
Posted
技术标签:
【中文标题】命令“/bin/sh -c npm install”返回一个非零代码:1【英文标题】:The command '/bin/sh -c npm install' returned a non-zero code: 1 【发布时间】:2019-02-02 10:52:00 【问题描述】:我是docker
的新手,出于学习目的,我遵循the official nodejs docker instructons 并按照说明进行操作,但它不断在同一命令上抛出错误。
尝试重新安装整个 docker
,如 Ubuntu 18.04 Bionic beaver for arch amd64
64 位的官方存储库安装中所述,但仍然出现相同的错误。
(sudo
权限已授予npm
和docker
。运行docker
和npm
而没有sudo
* 在终端中运行 npm install
可以正常使用
Dockerfile
FROM node:8
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "npm", "start" ]
错误
Sending build context to Docker daemon 19.46kB
Step 1/7 : FROM node:8
---> 55791187f71c
Step 2/7 : WORKDIR /usr/src/app
---> Using cache
---> 440112b72584
Step 3/7 : COPY package*.json ./
---> Using cache
---> 956513348aa7
Step 4/7 : RUN npm install
---> Running in dbbf0bc0d749
npm WARN hello@1.0.0 No repository field.
npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npmjs.org/array-flatten/-/array-
flatten-1.1.1.tgz failed, reason: getaddrinfo EAI_AGAIN
registry.npmjs.org:443
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-08-27T20_59_09_800Z-debug.log
The command '/bin/sh -c npm install' returned a non-zero code: 1
Docker 版本和信息
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:24:51 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:23:15 2018
OS/Arch: linux/amd64
Experimental: false
【问题讨论】:
Error: getaddrinfo EAI_AGAIN的可能重复 我不认为这是特定于 Docker 的 - 它只是一个节点 DNS/连接错误。你在公司防火墙或代理后面吗? See this search. @halfer 如果是代理问题,那么我的npm
将在 dockerfile
之外运行同样的问题。目前我可以通过终端在dockerfile
之外轻松运行npm
命令
我不知道会是这样。我自己没做过,但是Docker可以independently configured to use a proxy。
【参考方案1】:
同样的问题,显然COPY package*.json ./
命令没有正常工作。
我在安装 NPM 依赖项之前解决了复制文件的问题:
FROM node:8.15.1-alpine as build-stage
WORKDIR /app
COPY . .
RUN npm --verbose install
RUN npm run build
【讨论】:
【参考方案2】:在我的情况下,package.json 中有一个错误,这就是为什么没有工作并抛出同样的错误。
【讨论】:
【参考方案3】:在我的 Node.js 容器中安装 node-sass
时,我的 linux docker 设置也遇到了同样的问题。原来是container/docker在安装过程中内存不足。增加分配给 docker 的内存,为我修复了错误。
【讨论】:
【参考方案4】:只需在命令中添加 --force 即可。
运行 npm install --force
【讨论】:
以上是关于命令“/bin/sh -c npm install”返回一个非零代码:1的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Elastic Beanstalk 上部署节点:命令“/bin/sh -c npm install”返回非零代码:1