Vagrant将在.vagrant
所在的同一路径中创建一个名为Vagrantfile
的目录,其中存储信息和框状态。
我希望将此目录存储在其他位置,最好的选项是../.vagrant
中定义的目录(Vagrantfile
)。
有没有办法做到这一点?
答案 0 :(得分:2)
您可以使用VAGRANT_DOTFILE_PATH
environmnent variable
VAGRANT_DOTFILE_PATH
可以设置为更改Vagrant存储VM特定状态的目录,例如VirtualBox VM UUID。默认情况下,此项设置为.vagrant
。如果将Vagrant文件保存在Dropbox文件夹中以便共享桌面和笔记本电脑之间的文件夹(例如),Vagrant将使用最近使用的主机上的VM详细信息覆盖此目录中的文件。为避免这种情况,您可以在相应的计算机上将VAGRANT_DOTFILE_PATH
设置为.vagrant-laptop
和.vagrant-desktop
。 (请记住更新.gitignore
!)
查看https://github.com/mitchellh/vagrant/issues/3705#issuecomment-218569456,您可以从Vagrantfile
设置此变量 - 例如
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANT_DOTFILE_PATH = "#{ENV['HOME']}/project/vagrant/.vagrant";
currpath = ENV['VAGRANT_DOTFILE_PATH'];
if(currpath.nil?)
currpath = '.vagrant';
end
puts currpath #debugging
if(currpath != VAGRANT_DOTFILE_PATH)
ENV['VAGRANT_DOTFILE_PATH'] = VAGRANT_DOTFILE_PATH
ret = system "vagrant",*ARGV
FileUtils.rm_r(currpath)
if(ret)
exit
else
abort "Finished"
end
end
Vagrant.configure(2) do |config|
...
end
我相信Windows,HOME
变量称为HOMEPATH
。
答案 1 :(得分:1)
您可以通过为Vagrant设置环境变量来实现此目的,特别是VAGRANT_DOTFILE_PATH。
所以在这种情况下:
cd /path/to/Vagrantfile
export VAGRANT_DOTFILE_PATH=../.vagrant
vagrant up