2017-08-26 53 views
5
# Dockerfile 
FROM node:7-alpine 
RUN mkdir -p /src/app 
WORKDIR /src/app 
COPY package.json /src/app/package.json 
RUN npm install 
COPY . /src/app 
EXPOSE 3000 
CMD ['npm', 'start'] 

我试图完成一个katacoda.com锻炼Dockerizing nodejs应用与上述Dockerfile运行泊坞窗容器时NPM没有找到。构建完成,但运行的图像立即退出,并在泊坞窗的日志我看到:从节点图像

/bin/sh: [npm,: not found 

我试着用docker -it nodeapp /bin/bash其引发的错误docker: Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory".所以我不知道是怎么回事就在这里运行在交互模式下的容器。

+0

尝试'docker -it nodeapp sh'然后'which npm'来查看是否安装了npm –

+0

,因为alpine没有bash因此上述错误。尝试用'sh'并检查'npm',一旦你进入 –

+0

谢谢@TuanAnhTran'docker -it nodeapp sh'工程和npm被安装并且npm开始工作 – Peter

回答

5

它不工作的原因是单引号

CMD ['npm', 'start'] 

应该

CMD ["npm", "start"] 

当你不使用双引号,码头工人将删除单引号和处理命令[npm, start]

这就是为什么你会看到错误[npm,:找不到

+0

今天我学到了。谢谢 –

+0

我习惯使用单引号,今天我也学会了 –