当我尝试运行'docker build'时。或'docker build - < Dockerfile',错误如下所示:
[root@VM_60_90_centos dtask-ctrip-train-domestic]# docker build .
Sending build context to Docker daemon 38.98 MB
Step 1 : FROM ubuntu:14.04 ---> 132b7427a3b4
Step 2 : MAINTAINER Ke Peng<ke.peng@jingli365.com> ---> Using cache --->
db9529465f77
Step 3: WORKDIR /opt/app ---> Using cache ---> 3122f40a8e56
Step 4 :COPY . ./ ---> 4d67a5fbf128 Removing intermediate container
c2d83602f613
Step 5 : RUN npm install ---> Running in 67680232cbdf
/bin/sh: 1: npm: not found The command '/bin/sh -c npm install'
returned a non-zero code: 127
和我的Dockerfile如下:
FROM ubuntu:14.04
MAINTAINER Ke Peng <ke.peng@jingli365.com>
WORKDIR /opt/app
COPY . ./
RUN npm install
COPY dist/ /opt/app/
CMD node ./index.js < test.json
任何人都可以有类似的经历并给我一个解决方案。非常感谢!
答案 0 :(得分:0)
试试这个Dockerfile
FROM ubuntu:14.04
MAINTAINER Ke Peng <ke.peng@jingli365.com>
RUN sudo apt-get update
RUN sudo -y apt-get install nodejs
RUN sudo -y apt-get install npm
WORKDIR /opt/app
COPY . ./
RUN npm install
COPY dist/ /opt/app/
CMD node ./index.js < test.json
按照评论中的建议编辑
答案 1 :(得分:0)
试试这个:
FROM ubuntu:14.04
MAINTAINER Ke Peng <ke.peng@jingli365.com>
RUN sudo apt-get update && \
sudo apt-get install -y nodejs npm
WORKDIR /opt/app
COPY . ./
RUN npm install
COPY dist/ /opt/app/
CMD node ./index.js < test.json
答案 2 :(得分:0)
尝试将基本图片更改为one containing node,例如:
FROM node:6
MAINTAINER Ke Peng <ke.peng@jingli365.com>
WORKDIR /opt/app
COPY . ./
RUN npm install
COPY dist/ /opt/app/
CMD node ./index.js < test.json
注意:仅更改了第一行。
答案 3 :(得分:0)
我想从此修改:
RUN sudo apt-get update
RUN sudo -y apt-get install nodejs
RUN sudo -y apt-get install npm
到此:
RUN sudo apt-get update && apt-get install -y nodejs npm
整体看起来像这样:
FROM ubuntu:14.04
MAINTAINER Ke Peng <ke.peng@jingli365.com>
RUN sudo apt-get update && apt-get install -y nodejs npm
WORKDIR /opt/app
COPY . ./
RUN npm install
COPY dist/ /opt/app/
CMD node ./index.js < test.json
作为Dockerfiles的best practice,您需要在单个图层中构建/安装软件包。
这将有助于使用最小的图层形成图像,这将减少图像的整体尺寸。
希望这有帮助。