Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么每次我将vagrant ssh放入vagrant box时都必须运行bundle安装_Ruby On Rails_Vagrant - Fatal编程技术网

Ruby on rails 为什么每次我将vagrant ssh放入vagrant box时都必须运行bundle安装

Ruby on rails 为什么每次我将vagrant ssh放入vagrant box时都必须运行bundle安装,ruby-on-rails,vagrant,Ruby On Rails,Vagrant,我在一个全新的rails项目中使用了去年年底的一个Vagrant文件,出于某种原因,每次我将Vagrant ssh放入框中,它都找不到特定的gem,我必须运行bundle安装 以下是我的流浪汉档案,如有任何帮助,将不胜感激。谢谢 # -*- mode: ruby -*- # vi: set ft=ruby : VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # The

我在一个全新的rails项目中使用了去年年底的一个Vagrant文件,出于某种原因,每次我将Vagrant ssh放入框中,它都找不到特定的gem,我必须运行bundle安装

以下是我的流浪汉档案,如有任何帮助,将不胜感激。谢谢

# -*- 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服务器时,我都必须再次运行bundle install来启动它或查看rails控制台,这是一种具有特定属性的默认类型

rsync synced文件夹从计算机执行一次性单向同步 跑向流浪汉正在启动的机器

因此,这些更改并不是实时反映的,您需要强制系统再次同步这些文件

在您的文件中进行更改

  config.vm.synced_folder "../", "/app", type: "rsync", rsync__exclude: [".git/", "ops/*", "reports/",  "tmp/", "log/", ".#*"], rsync_auto: true
然后,当你有了流浪者之后,你需要逃跑

$ vagrant rsync-auto

所以vagrant会在有变化时强制rsync同步你的文件。一切都应该顺利进行

您的gems在哪里下载?在你做了vagrant halt和vagrant Up之后,这个目录又变空了吗?我忽略了/vendor,我想知道这是不是我现在想到的原因