Docker容器中的apt-get安装找不到软件包。

4

我正在尝试启动一个Docker容器,通过一个我已经拥有的Node.js脚本来填充Mongo数据库。

使用下面的脚本,我得到了以下错误:

Step 2 : RUN apt-get update && apt-get install -y nodejs
 ---> Running in 7ed0f8e018e7
Get:1 http://security.debian.org wheezy/updates Release.gpg [1554 B]
Get:2 http://security.debian.org wheezy/updates Release [102 kB]
Get:3 http://httpredir.debian.org wheezy Release.gpg [2373 B]
Get:4 http://security.debian.org wheezy/updates/main amd64 Packages [405 kB]
Get:5 http://httpredir.debian.org wheezy-updates Release.gpg [1554 B]
Get:6 http://httpredir.debian.org wheezy Release [191 kB]
Get:7 http://httpredir.debian.org wheezy-updates Release [143 kB]
Get:8 http://httpredir.debian.org wheezy/main amd64 Packages [7637 kB]
Get:9 http://httpredir.debian.org wheezy-updates/main amd64 Packages [5788 B]
Fetched 8490 kB in 5s (1444 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package nodejs

使用此 Dockerfile:

FROM mongo:2.6.11

ENV NODE_ENV docker

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

为什么apt-get找不到nodejs?

也许 mongo:2.6.11 是基于一个较旧的发行版? - Mykola Gurov
这是mongo:2.6.11的dockerfile:https://github.com/docker-library/mongo/blob/982328582c74dd2f0a9c8c77b84006f291f974c3/2.6/Dockerfile - Catfish
2个回答

3

看起来我在运行apt-get install之前漏掉了RUN curl --silent --location https://deb.nodesource.com/setup_0.10 | bash -这个步骤。


0

我实际上想要的是 Node 0.10.40 而不是 4.x。 - Catfish
为什么不使用纯净的Ubuntu或其他操作系统?在同一个容器中安装Node和MongoDB通常是一个不好的主意。此外,更加完善的镜像会删除“不必要”的东西,这可能会导致您遇到的问题。 - Mykola Gurov
我已经有一个节点容器来运行我的node.js服务器。我想要一个mongo容器,当我安装mongo容器时,我想要在一个node.js脚本中用json数据填充mongo数据库。从我对docker的理解,如果我在我的node.js容器中有一个CMD来填充mongo,我不确定如何同时拥有一个CMD来启动我的node.js服务器,因为每个容器只能有一个CMD。 - Catfish
你有两个容器,如果它们可以通过网络通信,则可以通过 --link 进行链接;如果需要交换文件,则可以通过 --volumes-from 进行链接。 - Mykola Gurov
是的,我知道如何将它们链接起来,但是Mongo的人口普查应该在RUN还是CMD中完成呢?另外,在构建软件包时,您能否指定链接,还是只能在运行时指定? - Catfish
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接