在docker容器

时间:2016-07-01 16:55:29

标签: ruby ubuntu docker

我在两个月前开始使用Docker,并在一些帮助下得到了一个运行ubuntu和Ruby 1.9.1的容器。这是我的Dockerfile的第一部分:

FROM ubuntu

# Add and update apt sources
RUN apt-get update; apt-get -y upgrade

# Add compiler package and ruby1.9.1
RUN apt-get install -y build-essential ruby1.9.1-dev
RUN apt-get install -y nodejs
RUN apt-get install -y npm

最近我的一个朋友想要使用相同的容器但是当他尝试使用该dockerfile构建一个图像时,他收到一条消息,指出'Package 'ruby1.9.1-dev' has no installation candidate',我认为这意味着他实际上是从我那里拉出一个不同的ubuntu实例(14.04对12,这些都是这样的。)

我尝试在docker hub上搜索一个带有ruby 1.9的ubuntu图像,并看到了几个候选人,但我不清楚他们是否会工作 - 可能是我自己缺乏理解,那里。 / p>

我可以告诉docker我想使用哪个版本的ubuntu,和/或是否有更好的方法来完成我们追求的目标?不幸的是我无法使用Ruby 2.3,因为我与其中一个宝石存在一些不兼容性。

3 个答案:

答案 0 :(得分:4)

您可以在FROM指令中将版本指定为标记,如下所示:

FROM ubuntu:12.04

了解更多信息,请查看the FROM documentationthe ubuntu docker page

答案 1 :(得分:0)

您还可以在Dockerfile中的ubuntu上安装特定版本的ruby:

RUN apt-get -y install ruby <version-number>

答案 2 :(得分:0)

由于基本图像是相同的,所以不太可能发生这种情况,因此它们在回购等方面应该表现相同。要么您或您的朋友可以将不同的ubuntu图像缓存并命名为ubuntu。

尝试删除此类图像并从docker hub再次拉出它们:

docker rmi ubuntu
docker rmi ubuntu:latest
docker pull ubuntu

然后,尝试重建。