假设我正在构建我的/my_company_cookbooks集合,我想使用一本来自Github的非常棒的社区烹饪书。
我有两个选择
每一种战略似乎都有其优缺点。
Github值得
Github缺点--如何确定我的生产食谱完全依赖于我在阶段测试过的烹饪书的版本。作者可以忘记在修改代码的同时增加食谱版本。未经测试的代码更改将到达我的生产环境。
本地副本的优点I可以100%肯定地测试并推向生产&调试更容易
本地副本缺点
在这个问题上有什么想法或最佳做法吗?
谢谢
发布于 2015-09-02 15:53:44
引用伯克格文件
GitHub定位 从1.0.0版开始,您可以使用GitHub速记来指定位置。 烹饪书“工件”,github:“RiotGames /工件-食谱”,标签:" 0.9.8“,在这个例子中,来自工件-烹饪书存储库中的RiotGames组织的工件食谱将被克隆到书架上。
我假设这消除了github的缺点,然后您现在就没有理由不使用它了。
发布于 2015-09-02 19:14:46
在可能的情况下,使用社区“超市”存储库中的食谱。例如,以下内容将检索最新版本的石墨:
source 'https://supermarket.chef.io'
cookbook "graphite"文档显示,本食谱由重水人管理。
为什么?在使用源代码存储库中的菜谱时,您可能会将相同版本的替代副本加载到您的厨师服务器中。
哈?请解释一下!
以下列情况为例:
您的主厨服务器现在有一个版本1.1的副本,该副本与版本控制系统中1.1版本的最新副本不匹配.
让事情更复杂的是,您需要显式地运行一个"berks更新“,然后将食谱强制重新装载到您的厨师服务器(记住berk书架冻结食谱),以解决这个问题……这可能成为一个重要的问题,我已经被它烧掉不止一次(奇怪的是,openstack食谱是无法从超市获得)。
在一天结束时,如果您与其他开发团队关系良好,请从源代码中消费:-)如果您渴望稳定性,另一种解决方案是只使用Git标记,这是加载到厨师超市的食谱遵循的最佳做法。
厨师超市提供的是厨师食谱的发布管理流程。Git应该跟踪食谱中文件的所有更改。但是它不能检测到烹饪书什么时候可以发布。这是开发人员的工作,如果他的行为和遵循一个合理的工作流,他将标记他的代码,然后将其推到某种存储库中,供第三方下载。超市提供的就是这种加工和储存设施。我强烈推荐你的朋友使用它:-)
为长时间的咆哮道歉!治疗:-)
https://stackoverflow.com/questions/32357526
复制相似问题