jes*_*sal 7 nfs vagrant ruby-on-rails-4 windows-8.1 ubuntu-14.04
我正在使用vagrant-winnfsd插件在Windows 8.1主机上添加Vagrant的NFS支持.我正在运行Ubuntu 14.04客户端.
我正在使用此设置来运行Rails应用程序.除了Rails/Carrierwave尝试从tmp目录中删除生成此错误的文件时,一切都运行良好:
Errno::EIO (Input/output error @ dir_s_rmdir - /vagrant/myproject/public/uploads/tmp/1421108602-18479-5242):
Run Code Online (Sandbox Code Playgroud)
这是我的Vagrant文件的相关部分:
config.vm.network "private_network", type: "dhcp"
config.vm.synced_folder ".", "/vagrant", type: "nfs"
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?
我终于能够通过使用其中一张 GitHub 票证中建议的方法来解决这个问题。
基本上,它涉及将 Rails 和 Carrierwave 指向 /vagrant 文件夹之外的目录以将 tmp 文件转储到其中,以避免遇到任何锁定/权限问题:
# config/initializers/01_patch_tmpdir.rb
class Dir
def self.tmpdir
'/home/vagrant/rails_tmp/'
end
end
CarrierWave.configure do |config|
config.cache_dir = '/home/vagrant/uploads_tmp/tmp/uploads'
config.root = '/home/vagrant/uploads_tmp/tmp'
end
ENV['TMPDIR'] = Dir.tmpdir
Run Code Online (Sandbox Code Playgroud)
您现在可以继续将该文件添加到您的 .gitignore 中,这样它就不会妨碍其他人处理您的项目。
| 归档时间: |
|
| 查看次数: |
1653 次 |
| 最近记录: |