我正在使用生活在Docker容器内的Puppet代理,因此使用尽可能少的文件系统空间非常重要。因此,在我的Docker bulid的最后,I was running the following:
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
问题是我的Puppet运行尝试安装一个包,并且因为没有可以从中提取的列表,所以它失败了。一个简单的apt-get update
允许一切正常运行。
我在他们的存储库中运行最新的Puppet 3客户端。我如何使用阶段来要求每个Puppet运行包装:
apt-get update
。 (即:如果没有任何变化,不做任何事情,不要更新,因为这会浪费周期,带宽,资源等。)apt-get clean
清除所有内容,并可能运行上面列出的Docker RUN
命令。 如何使用Puppet执行阶段智能地包装Puppet运行,事先更新apt并在之后擦除缓存?
答案 0 :(得分:0)
如果您使用puppetlabs-apt模块,请定义:
Class['apt'] -> Package<| |>
否则使用:
exec { 'apt-update':
command => '/usr/bin/apt update'
}
Exec['apt-update'] -> Package <| |>
这种方式apt update
将在某些包丢失的情况下执行。