如何在Dockerfile中定制yum .repo文件,以便在安装软件包时可以用作源文件?

我有一个私有的YUM存储库托pipe在一个Docker容器中。 我想站出来知道这个私有存储库的另一个Docker容器,并使用它来安装包,如下所示:

ADD myrepo.repo /etc/yum.repos.d/myrepo.repo RUN yum install -y custompackage 

问题是myrepo.repo中的baseurl需要configuration,理想情况下,我想设置一个环境variables,当做docker run -e MY_REPO_HOST=1.2.3.4 ...

有什么想法吗?

我将采用Solomon( https://groups.google.com/d/msg/docker-user/FyCWLC38Ueg/6xxEwEr-UG0J )概述的方法,并创build一个包装脚本,它将使用环境variables生成(或至less修改myrepo.repo文件)。

YUM#回购文件中有9个YUM#variables可用于replaceURL(和其他一些地方)。

如果在运行yum时在环境中设置variables,则会将其replace为repo文件中URL中的相应位置。

在CentOS 6+中还有/etc/yum/vars目录,其中可以包含任意文件,其文件名是yumvariables名,第一行是variables值(允许自由地命名.repo文件中的variables)。

所以假设你使用的是足够新的CentOS版本(6+),你应该能够创build这些文件,然后你的repo文件可以使用它们,并且是静态的。

这些variables就像默认的$releasever$arch等一样工作