# 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 练习。构建完成,但运行映像立即退出,在 docker 日志中我看到:
/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".
所以我不确定这里发生了什么。
它不起作用的原因是单引号
CMD ['npm', 'start']
应该是
CMD ["npm", "start"]
当您不使用双引号时,docker 将删除单引号并将命令处理为[npm, start]
这就是为什么您看到错误[npm,
:未找到
我有同样的症状,但问题略有不同。写在这里以防谷歌将我的情况中的其他人引导到此链接对我来说,问题是忘记了CMD
中的逗号。所以解决方案是从CMD ["npm" "start"]
到CMD ["npm", "start"]
.