2017-06-10 41 views
0

我從去年年底開始使用一個流浪病毒文件與一個全新的導軌項目,並且由於某種原因,我每次將vagrant ssh放入盒子,它找不到一定的寶石,我必須運行bundle install爲什麼我每次運行捆綁包安裝時,我都會將流浪狗ssh流入我的流浪盒

以下是我的Vagrantfile,任何幫助,將不勝感激。謝謝!

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

VAGRANTFILE_API_VERSION = "2" 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    # The most common configuration options are documented and commented below. 
    # For a complete reference, please see the online documentation at 
    # https://docs.vagrantup.com. 

    # Every Vagrant development environment requires a box. You can search for 
    # boxes at https://atlas.hashicorp.com/search. 
    config.vm.box = "eyefodder/precise64-utf8" 
    config.vm.host_name = 'myproj' 

    config.vm.network :forwarded_port, guest: 3000, host: 3000 
    # config.vm.network :forwarded_port, id: 'ssh', guest: 22, host: 2222 

    config.vm.synced_folder "./puppet", "/etc/puppet" 
    config.vm.synced_folder 'dotfiles', '/dotfiles' 
    config.vm.synced_folder '../reports', '/reports' 
    config.vm.synced_folder "../", "/app", type: "rsync", rsync__exclude: [".git/", "ops/*", "reports/", "tmp/", "log/", ".#*"] 

    config.vm.provider 'virtualbox' do |vb| 
    vb.customize ["modifyvm", :id, "--memory", "2048"] 
    vb.name = 'myproj' 
    end 

    config.vm.provision 'shell', path: 'install_apt_packages.sh' 
    config.vm.provision 'shell', path: 'build_ruby_from_source.sh' 
    config.vm.provision 'shell', path: 'install_puppet_modules.sh' 
    config.vm.provision "puppet" do |puppet| 
    puppet.module_path = 'puppet/modules' 
    puppet.hiera_config_path = "puppet/hiera.yaml" 
    puppet.working_directory = "/etc/puppet" 
    puppet.environment_path = "puppet/environments" 
    puppet.environment = "dev" 
    end 

    config.trigger.before [:up, :reload], :stdout => true do 
    run "mkdir -p ../reports" 
    run "mkdir -p ../public/uploads" 
    run "sh ./setup_guest_bash_profile.sh" 
    end 
end 

編輯

而且似乎每當我殺了我的Rails服務器我要以啓動它或者查看軌道控制檯

+0

你的寶石在哪裏下載?並且這個目錄在你做了'vagrant halt'然後'vagrant up'之後再次變空了' –

+0

我是gitignoring /供應商,我想知道這是我現在考慮它的來源 –

回答

1

rsync再次運行bundle install是默認的類型與所具體屬性

rsync同步文件夾從機器執行一次性單向同步運行到由Vagrant啓動的機器。

這樣的更改不會(在某種程度上)實時反映,你需要強迫你的系統再次同步的文件

做出改變你的Vagrantfile

config.vm.synced_folder "../", "/app", type: "rsync", rsync__exclude: [".git/", "ops/*", "reports/", "tmp/", "log/", ".#*"], rsync_auto: true 

然後經過你有vagrant up,你將需要運行

$ vagrant rsync-auto 

所以流浪漢將迫使rsync的同步文件當有一些變化時。一切都應該順利運作