【发布时间】:2018-02-04 09:07:37
【问题描述】:
# 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". 所以我不确定这里发生了什么。
【问题讨论】:
-
尝试
docker -it nodeapp sh然后which npm看看是否安装了npm -
因为 alpine 没有 bash 因此出现上述错误。尝试使用
sh并在您进入后查看npm -
感谢@TuanAnhTran
docker -it nodeapp sh工作,npm 已安装,npm start 工作 -
那么
docker run ....怎么没有呢? -
我将其更改为
CMD npm start,现在可以使用了。