2017-04-25 2 views
1

Vagrant wird ein Verzeichnis mit dem Namen .vagrant im selben Pfad erstellen, wo die Vagrantfile befindet, wo es Informationen und Boxen Staaten speichert.Haben .vagrant Ordner ein Verzeichnis nach oben

Ich möchte dieses Verzeichnis an einem anderen Ort gespeichert haben, die beste Option ist ein Verzeichnis nach oben (../.vagrant), definiert in der Vagrantfile.

Gibt es eine Möglichkeit, das zu tun?

Antwort

2

Sie können tun, dass die Verwendung von VAGRANT_DOTFILE_PATH environmnent variable

VAGRANT_DOTFILE_PATH can be set to change the directory where Vagrant stores VM-specific state, such as the VirtualBox VM UUID. By default, this is set to .vagrant . If you keep your Vagrantfile in a Dropbox folder in order to share the folder between your desktop and laptop (for example), Vagrant will overwrite the files in this directory with the details of the VM on the most recently-used host. To avoid this, you could set VAGRANT_DOTFILE_PATH to .vagrant-laptop and .vagrant-desktop on the respective machines. (Remember to update your .gitignore !)

bei https://github.com/mitchellh/vagrant/issues/3705#issuecomment-218569456 Suchen Sie diese Variable von Ihrem Vagrantfile einstellen können - zum Beispiel

# -*- 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 

ich an Fenstern glauben, die HOME Variable HOMEPATH genannt .

1

Sie können dies tun, indem Sie die Umgebungsvariable für Vagrant festlegen, insbesondere VAGRANT_DOTFILE_PATH.

Also in diesem Fall:

cd /path/to/Vagrantfile 
export VAGRANT_DOTFILE_PATH=../.vagrant 
vagrant up 
+0

Wissen Sie, ob es möglich ist, diesen Wert zu setzen in 'Vagrantfile' in irgendeiner Weise? –

+0

Nicht so weit ich weiß. Sie könnten den Umgebungsvariablensatz und den Vagrant jedoch leicht in ein Shellskript einbinden. – nelsonda

+0

Ich habe Sie sagte, aber es verursacht den folgenden Fehler: Ungültiges Argument @ dir_s_mkdir - C:/Benutzer/Bruno Finger/Repos/DGuardWeb/".. (Errno :: EINVAL)' Ich glaube, das Skript, das den Ordner erstellt nicht vorbereitet für Argumente, die Dinge wie "../" enthalten. –

Verwandte Themen