Capistrano在虚拟机中部署

时间:2012-02-05 16:13:57

标签: ruby-on-rails capistrano virtualbox readonly vagrant

我使用Virtual box + gem Vagrant
在一切运作良好之前一周 我把包装好了。现在我又用相同的项目部署了这个盒子。

和Capistrano输出错误:

*** [err :: 33.33.33.10] creating symbolic link `/vagrant/demoapp/current/log'
*** [err :: 33.33.33.10] : Read-only file system

https://gist.github.com/1746250(错误+ deploy.rb)

我设置了sudo chmod 777 -R 1vagrant /
但它仍然不起作用。

会发生什么?

2 个答案:

答案 0 :(得分:7)

有一种解决方法可以使共享文件夹中的符号链接再次在VirtualBox 4.1.8+上运行。基本上你需要发出这个命令:

VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

您可以在Vagrant上下文中执行此操作,方法是将其添加到Vagrantfile的Vagrant::Config.run块中:

config.vm.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME", "1"]

可以在VirtualBox bug #10085找到更多信息。

请注意,分享setextradata技巧的评论者忘记告诉您密钥名称需要SHARE_NAME。我发现了digging through the C code

答案 1 :(得分:3)

Vagrant gem的作者的正式答案:

  

不幸的是,VirtualBox共享文件夹文件系统不允许使用符号链接。

     

您唯一的选择是在共享文件夹之外部署。

https://github.com/mitchellh/vagrant/issues/713