【问题标题】:Docker does not identify npm install command and throws errorDocker 无法识别 npm install 命令并抛出错误
【发布时间】:2018-02-08 06:55:54
【问题描述】:

我的Dockerfile如下图:

From ubuntu:14.04

WORKDIR /app

#COPY package.json /app/package.json
COPY . /app
RUN npm install

EXPOSE 3000

CMD ["npm","start"]

现在,当我运行命令 sudo docker -t my-app . 时。它给了我以下错误:

将构建上下文发送到 Docker 守护进程 453.6 kB 发送构建上下文 到 Docker 守护进程步骤 0:FROM ubuntu:14.04 ---> 37a9c4a8276c 步骤 1 :WORKDIR /app ---> 使用缓存 ---> a83d4ef27948 第 2 步:复制。 /app ---> 1029f5d7d8a3 删除中间容器 eb9e7ea7f7e6 第 3 步:运行 npm install ---> 在 5d4f2c05d2d8 /bin/sh: 1 中运行: npm: not found INFO[0000] 命令[/bin/sh -c npm install] 返回一个非零代码:127

我的 Dockerfile 中是否缺少任何内容?

【问题讨论】:

    标签: node.js docker dockerfile


    【解决方案1】:

    您的 Dockerfile 正在构建 vanilla ubuntu FROM ubuntu:14.04,因此如果您想在容器中使用 npm/node,您需要自己设置节点,方法是添加 RUN 命令来安装节点,然后为 ubuntu 安装 instructions .

    您可能想简单地使用以下位置的官方节点图像来代替这个:

    https://hub.docker.com/_/node/

    FROM node

    或使用特定版本/发行版,例如

    FROM node:8.4.0-wheezy

    (其他标签/版本/发行版在 docker hub 页面上列出)

    【讨论】:

      【解决方案2】:

      这是意料之中的。您的图像没有安装节点,因为基础图像是 ubuntu。您应该使用node 图像作为基础图像。

      From node
      
      WORKDIR /app
      
      #COPY package.json /app/package.json
      COPY . /app
      RUN npm install
      
      EXPOSE 3000
      
      CMD ["npm","start"]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-18
        • 2017-04-06
        • 2017-02-20
        • 1970-01-01
        • 2023-04-08
        相关资源
        最近更新 更多