Docker无法运行nodejs npm

时间:2018-09-11 11:06:07

标签: node.js docker npm

当我在 Dockerfile 中的命令下运行时:

FROM ruby:2.3

RUN apt-get update

RUN apt-get install nodejs npm -y

RUN apt-get install vim -y

RUN apt-get install memcached -y

我遇到以下错误:

  

将构建上下文发送到Docker守护程序29.74MB

     

步骤1/12:从红宝石:2.3

     

---> 09c6ceeef3bc

     

第2/12步:运行apt-get更新

     

--->使用缓存

     

---> c41c3235c3ba

     

第3/12步:运行apt-get install nodejs npm -y

     

--->在b0d407900cbd中运行

     

正在阅读包裹清单...

     

正在构建依赖树...

     

正在读取状态信息...

     

** E:无法找到软件包npm

     

命令'/ bin / sh -c apt-get install nodejs npm -y'返回一个   非零代码:100 **

请提出解决方案,谢谢。

2 个答案:

答案 0 :(得分:3)

Docker映像ruby:2.3基于Debian 9 Stretch,其中旧的nodejs软件包而不是npm软件包。

您可以这样做:

RUN apt-get update; \
    apt-get install -y curl gnupg; \
    curl -sL https://deb.nodesource.com/setup_8.x | bash -; \
    apt-get install -y nodejs; \
    rm -rf /var/lib/apt/lists/*

首先,它会安装curl才能下载安装脚本,而该安装脚本需要gnupg

您可以在nodejs官方网站上找到更多信息:enter image description here

答案 1 :(得分:0)

首先,您必须从https://deb.nodesource.com/setup_8.x安装nodesetup 在RUN apt-get update语句后在您的docker文件中添加代码。

RUN curl -sL https://deb.nodesource.com/setup_8.x |重击-;

注意:您正在使用RUN语句在Docker Image中不必要地创建图层,可以将这些语句组合起来