【发布时间】:2014-12-30 15:13:59
【问题描述】:
开发者应该如何管理多个 vagrant box 的 IDE 和 git/svn/hg 客户端的放置。有两种方法:
1 - 将 git/svn/hg 客户端和 IDE(emacs、vim、...)放入主机操作系统并使用 SSH 或同步文件夹连接到盒子以编辑/提交代码。
2 - 把所有东西都放在 vagrant box 里。
我想知道哪种方法更受欢迎,每种方法有什么优点/缺点。
【问题讨论】:
开发者应该如何管理多个 vagrant box 的 IDE 和 git/svn/hg 客户端的放置。有两种方法:
1 - 将 git/svn/hg 客户端和 IDE(emacs、vim、...)放入主机操作系统并使用 SSH 或同步文件夹连接到盒子以编辑/提交代码。
2 - 把所有东西都放在 vagrant box 里。
我想知道哪种方法更受欢迎,每种方法有什么优点/缺点。
【问题讨论】:
我想说这在很大程度上取决于个人偏好、您通常的工作流程以及您使用 Vagrant 的目的。如果您在 Chef 或 puppet 上工作,您可以使用诸如 kitchen 或包含的供应商 (https://docs.vagrantup.com/v2/plugins/provisioners.html) 之类的框架,而无需处理 VM 内部的任何内容。
我个人的偏好是对代码使用同步文件夹(可以在我的 $HOME 中的任何位置),在主机操作系统上编辑它们并在 VM 中对其进行测试。根据具体情况,可能意味着有一个终端用于 vim,另一个终端带有 vagrant ssh 会话,大多数时候使用带有 'tail -f logfile' 等的 tmux。在其他情况下,我通常使用 vagrant provision 功能就足够了通过执行 Vagrantfile 中定义的(shell)命令。
个人 我更喜欢仅将 Vagrant 框用于实际工作任务。对我来说,使用共享/同步文件夹的好处是,作为开发人员,我可以使用这些工具来编写/修改我想要的文件,而无需在 VM 上安装编辑器、工具(例如代码样式)或点文件以及频繁执行vagrant destroy -y && vagrant up,因为我更喜欢干净的环境以避免之前步骤的任何冲突。但这是我个人的偏好。您可以随时修改 VM 基础框并将其保存,以避免重复这些安装步骤。
如果您想与同事分享“黄金形象”或将其提供给新员工,那么包含所有必需工具的预构建基础箱各有各的好处。如果您需要为所有库或编译器安装开发人员工具,这将特别有用。但即便如此,我个人更喜欢VM工作流程之外的工作:)
【讨论】: