Docker不能识别npm install命令并抛出错误
我的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 .
。 它给了我以下错误:
发送构build上下文到Docker守护进程453.6 kB将构build上下文发送到Docker守护进程步骤0:FROM ubuntu:14.04 —> 37a9c4a8276c步骤1:WORKDIR / app —>使用caching—> a83d4ef27948步骤2:COPY。 / app —> 1029f5d7d8a3删除中间容器eb9e7ea7f7e6步骤3:运行npm install —>在5d4f2c05d2d8 / bin / sh中运行:1:npm:not found INFO [/ bin / sh -c npm install ]返回了一个非零的代码:127
我的Dockerfile中有什么遗漏吗?
这是预料之中的。 您的映像没有安装节点,因为基本映像是Ubuntu的。 您应该使用节点图像作为基础图像。
From node WORKDIR /app #COPY package.json /app/package.json COPY . /app RUN npm install EXPOSE 3000 CMD ["npm","start"]
你的Dockerfile是FROM ubuntu:14.04
构build的,所以如果你想在你的容器中使用npm / node,你需要通过添加RUN
命令来安装节点,按照ubuntu的安装说明安装节点。
而不是这个,你可能只想使用官方的节点镜像:
https://hub.docker.com/_/node/
FROM node
或者使用特定的版本/发行版
FROM node:8.4.0-wheezy
(其他标签/版本/发行版在Docker Hub页面上列出)