从节点映像运行docker容器时找不到Npm

# 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'] 

我正在尝试使用上面的Dockerfile为Dockerizing nodejs应用程序完成katacoda.com练习。 构build完成,但立即运行图像退出,并在我看到的docker日志中:

 /bin/sh: [npm,: not found 

我试图用docker -it nodeapp /bin/bashdocker -it nodeapp /bin/bash运行容器,它引发了错误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". 所以我不确定这里发生了什么。

它不工作的原因是单引号

 CMD ['npm', 'start'] 

应该

 CMD ["npm", "start"] 

当你不使用双引号时,docker会删除单引号,并将命令处理为[npm, start]

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