繁体   English   中英

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

[英]Npm not found when running docker container from node image

# 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 完成katacoda.com练习,以对 nodejs应用程序进行 Dockerizing。 构建完成但运行图像立即退出,在 docker 日志中我看到:

/bin/sh: [npm,: not found

我尝试使用docker -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, : not found

我有相同的症状,但问题略有不同。 写在这里以防谷歌将我的情况下的其他人引导到此链接对我来说,问题是忘记了CMD逗号。 所以解决方案是从CMD ["npm" "start"]CMD ["npm", "start"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM