Docker无法识别npm install命令并抛出错误

时间:2017-08-30 13:57:52

标签: node.js docker dockerfile

我的 Dockerfile 如下所示:

From ubuntu:14.04

WORKDIR /app

#COPY package.json /app/package.json
COPY . /app
RUN npm install

EXPOSE 3000

CMD ["npm","start"]

现在,当我运行命令sudo docker -t my-app .时。它给了我以下错误:

  

向Docker守护程序发送构建上下文453.6 kB发送构建上下文   到Docker守护进程步骤0:从ubuntu:14.04 ---> 37a9c4a8276c第1步   :WORKDIR / app --->使用缓存---> a83d4ef27948第2步:复制。   / app ---> 1029f5d7d8a3删除中间容器eb9e7ea7f7e6   第3步:运行npm install --->在5d4f2c05d2d8 / bin / sh:1中运行:   npm:not found INFO [0000]命令[/ bin / sh -c npm install]   返回非零代码:127

我的Dockerfile中是否有任何遗漏?

2 个答案:

答案 0 :(得分:1)

这是预期的。您的图像没有安装节点,因为基本映像是ubuntu。您应该使用node图像作为基本图像。

From node

WORKDIR /app

#COPY package.json /app/package.json
COPY . /app
RUN npm install

EXPOSE 3000

CMD ["npm","start"]

答案 1 :(得分:1)

您的Dockerfile正在构建vanilla ubuntu FROM ubuntu:14.04,因此如果您想在容器中使用npm / node,您需要通过添加RUN命令来安装节点,然后自行设置节点。为ubuntu安装instructions

除此之外,您可能只想使用在以下位置找到的官方节点图片:

https://hub.docker.com/_/node/

FROM node

或使用特定版本/发行版

FROM node:8.4.0-wheezy

(其他标签/版本/发行版列在docker hub页面上)