Docker:找不到npm

时间:2019-03-20 10:04:36

标签: node.js docker npm build containers

我有以下Dockerfile:

FROM ubuntu
USER root
RUN apt-get update && apt-get install curl -y
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get update && apt-get upgrade -y && apt-get install nodejs -y
RUN mkdir /opt/public
RUN mkdir /opt/bin
ADD public /opt/public
ADD bin /opt/bin
RUN ls -lah /opt/bin
RUN ls -lah /opt/public
ADD run.sh /bin/run.sh
RUN chmod +x /bin/run.sh
RUN cd /opt/bin && npm install
CMD ["/bin/run.sh"]

构建容器时,出现此错误:

  

/ bin / sh:1:npm:找不到

出什么问题了?你能帮我吗?

2 个答案:

答案 0 :(得分:1)

尝试在构建映像时分别安装npm

RUN apt-get update && apt-get upgrade -y && \
    apt-get install -y nodejs \
    npm                       # note this one

答案 1 :(得分:1)

Node 也包 npm,所以不需要像 Yury 提到的那样安装 npm。这样做通常是个坏主意,因为您无法控制 nodejsnpm 版本

对我来说答案很简单。我有以下代码:

# install nodejs
RUN curl --silent --location https://deb.nodesource.com/setup_12.x | bash -
RUN apt-get install -y \
  nodejs
RUN echo "Node: " && node -v
RUN echo "NPM: " && npm -v

但是我必须安装 curl,所以它失败了。所以在此之前,你需要安装 curl:

RUN apt-get update && apt-get install -y curl