Ruby 在docker容器中请求特定的ubuntu版本

Ruby 在docker容器中请求特定的ubuntu版本,ruby,ubuntu,docker,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 RU

大约两个月前,我开始使用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
RUN apt-get -y install ruby <version-number>
最近,我的一个朋友想使用同一个容器,但当他试图使用dockerfile构建一个映像时,他收到一条消息,说
'Package'ruby1.9.1-dev'没有安装候选程序'
,我想这意味着他实际上从我这里获取了一个不同的ubuntu实例(14.04 vs 12,类似于这一行)

我试着在docker hub上搜索一个带有ruby 1.9的ubuntu图像,看到了几个候选图像,但我不清楚它们是否有效——可能是我自己不了解


我能告诉docker我想使用哪个版本的ubuntu吗?或者有没有更好的方法来完成我们的目标?不幸的是,我不能使用Ruby 2.3,因为它与我正在使用的一个Gem不兼容。

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

FROM ubuntu:12.04

有关详细信息,请查看。

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

FROM ubuntu:12.04

有关详细信息,请查看和查看。

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

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
RUN apt-get -y install ruby <version-number>
运行apt get-y安装ruby

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

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
RUN apt-get -y install ruby <version-number>
运行apt get-y安装ruby

这不太可能发生,因为基本映像是相同的,因此它们在repos等方面的行为应该相同。您或您的朋友可以缓存不同的ubuntu映像并命名为ubuntu

尝试删除此类图像并再次从docker hub中拖动它们:

docker rmi ubuntu
docker rmi ubuntu:latest
docker pull ubuntu

然后,尝试重建。

这不太可能发生,因为基本映像是相同的,因此它们在repos等方面的行为应该相同。您或您的朋友可以缓存不同的ubuntu映像并命名为ubuntu

尝试删除此类图像并再次从docker hub中拖动它们:

docker rmi ubuntu
docker rmi ubuntu:latest
docker pull ubuntu
然后,尝试重建