【发布时间】:2015-02-05 14:38:33
【问题描述】:
我正在构建一个用于 Vagrant 的开发环境,它目前运行良好,但有时我需要进行一些不属于基本系统设置的小改动。因此,为了加快构建时间和迭代速度,我想将构建分成两部分,按顺序运行:
- 基础映像(操作系统、常用工具、配置等)
- Vagrant 细节(开发者工具、用户配置等)
前者不会经常改变,但后者会。我正在使用 VirtualBox 构建器,但我似乎无法弄清楚如何使一个构建器依赖于另一个构建器 - 这可能吗?
【问题讨论】:
我正在构建一个用于 Vagrant 的开发环境,它目前运行良好,但有时我需要进行一些不属于基本系统设置的小改动。因此,为了加快构建时间和迭代速度,我想将构建分成两部分,按顺序运行:
前者不会经常改变,但后者会。我正在使用 VirtualBox 构建器,但我似乎无法弄清楚如何使一个构建器依赖于另一个构建器 - 这可能吗?
【问题讨论】:
不,Packer 中没有构建器依赖机制。
但是,由于您可以控制运行构建过程的构建器,因此您可以创建简单的包装脚本,以便创建所需的流程。
因此,构建者 A 将创建基础盒子并将最终产品放置在 /path 中,而构建者 B 将使用来自 /path 的虚拟盒子图像作为最终 Vagrant 盒子的基础。您的包装脚本应该是构建器 A 和构建器 B 之间的粘合剂。
【讨论】:
push,这有点烦人。再次感谢您的洞察力!