我有一个托管在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 ...
有什么想法吗?
答案 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
等相同。