如何在Dockerfile中自定义yum .repo文件,以便在安装包时将其用作源?

时间:2014-09-23 10:18:25

标签: docker yum

我有一个托管在Docker容器中的私有YUM存储库。我想站起来了解另一个知道这个私有存储库的Docker容器并使用它来安装软件包,例如:

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

问题是myrepo.repo中的baseurl需要是可配置的,理想情况下我想在执行docker run -e MY_REPO_HOST=1.2.3.4 ...

时设置环境变量

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

在yum repo文件中的URL(以及其他一些地方)中有9个YUM#变量可供替换。

如果在yum运行时在环境中设置变量,它将把它们替换为repo文件中URL的适当位置。

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

因此,假设您使用的是足够新版本的CentOS(6+),您应该只能创建这些文件,然后您的repo文件就可以使用它们并保持静态。

变量的工作方式与默认的$releasever$arch等相同。