当我在 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 **
请提出解决方案,谢谢。
答案 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
。
答案 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中不必要地创建图层,可以将这些语句组合起来