我的 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中是否有任何遗漏?
答案 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页面上)