Vagrant
基本用法
配置
同步文件夹在你的 Vagrantfile 中使用 config.vm.synced_folder 方法进行配置。配置指令的使用非常简单
Vagrant.configure("2") do |config|
# other config here
config.vm.synced_folder "src/", "/srv/website"
end
第一个参数是主机上目录的路径。如果路径是相对的,它相对于项目根目录。第二个参数必须是共享文件夹在客户机中的绝对路径。如果不存在,此文件夹将被创建(递归地,如果需要)。默认情况下,Vagrant 使用 SSH 用户作为所有者/组挂载同步文件夹,并将任何父文件夹设置为 root。
选项
在配置同步文件夹时,你还可以指定其他可选参数。这些选项如下所示。本节下方提供了一些使用这些选项的详细示例,请注意,所有者/组示例提供了两个用逗号分隔的附加选项。
除了这些选项之外,特定的同步文件夹类型可能允许更多选项。有关更多详细信息,请参阅特定同步文件夹类型的文档。内置同步文件夹类型在这些文档的导航中提供的其他页面中进行了记录。
create(布尔值) - 如果为 true,主机路径将会在不存在时被创建。默认值为 false。disabled(布尔值) - 如果为 true,此同步文件夹将被禁用,将不会设置。这可以用来禁用先前定义的同步文件夹,或者根据某些外部因素有条件地禁用定义。group(字符串) - 将拥有同步文件夹的组。默认情况下,这将是 SSH 用户。一些同步文件夹类型不支持修改组。mount_options(数组) - 传递给mount命令的额外挂载选项列表。owner(字符串) - 此同步文件夹的拥有者用户。默认情况下,这将是 SSH 用户。某些同步文件夹类型不支持修改拥有者。type(字符串) - 同步文件夹的类型。如果未指定,Vagrant 将自动为您的环境选择最佳同步文件夹选项。否则,您可以指定特定类型,例如 "nfs"。id(字符串) - 在访客机器中此同步文件夹的挂载点的名称。当您在访客机器中运行mount时,它会显示出来。
启用
同步文件夹在 vagrant up 和 vagrant reload 期间自动设置。
禁用
可以通过将 disabled 选项添加到任何定义中来禁用同步文件夹
Vagrant.configure("2") do |config|
config.vm.synced_folder "src/", "/srv/website", disabled: true
end
可以按如下方式禁用默认 /vagrant 分享
config.vm.synced_folder ".", "/vagrant", disabled: true
修改拥有者/组
有时最好使用与默认 SSH 用户不同的拥有者/组来挂载文件夹。请记住,这些选项只会影响同步文件夹本身。如果您想修改同步文件夹的父文件夹的拥有者/组,请使用脚本。可以设置这些选项
config.vm.synced_folder "src/", "/srv/website",
owner: "root", group: "root"
注意:在 mount_options 中定义的拥有者和组 ID 将优先于 owner 和 group 选项。
例如,给定以下配置
config.vm.synced_folder ".", "/vagrant", owner: "vagrant",
group: "vagrant", mount_options: ["uid=1234", "gid=1234"]
挂载的同步文件夹将由具有 ID 1234 的用户和具有 ID 1234 的组拥有。owner 和 group 选项将被忽略。
符号链接
在同步文件夹实现和主机/客户机组合中对符号链接的支持并不一致。Vagrant 会尽力确保符号链接有效,方法是配置各种虚拟机(例如 VirtualBox),但某些主机/客户机组合仍然无法正常工作。这会影响依赖符号链接的一些开发环境。
建议确保在所有同步文件夹的主机/客户机组合上测试符号链接,如果这对您很重要。