无法访问 vagrant 机器上的 vagrant 文件夹(陈旧的文件句柄)

Can't access vagrant folder on vagrant machine (Stale file handle)

我目前已经被一个问题卡住了 2 天了。 我最近将 mac OS 更新为 OS Catalina(我知道我应该等一下),但我无法访问 vagrant mac 上的 /vagrant 文件夹嗨.

我的 nfs 配置如下所示:

project_config.vm.synced_folder ".", "/vagrant", type: "nfs", mount_options: ['rw', 'vers=3', 'tcp', 'fsc', 'nolock', 'actimeo=2']

这是我尝试在 vagrant ssh 中执行 ls 时的输出:

vagrant@project:/vagrant$ ls
ls: cannot open directory '.': Stale file handle

在我的 vagrant 中还有 运行 一个 Docker 容器,安装看起来像这样 (Vagrantfile):

project_config.vm.provision "docker" do |d|
  d.build_image "/vagrant/docker/reverse-proxy", args: "-t='reverse-proxy'"
  d.run "reverse-proxy", args: "-v '/var/run/docker.sock:/var/run/docker.sock' -p 80:80 -p 443:443 -p 8080:8080"
end

执行 vagrant up 后出现错误:

The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

docker build -t='reverse-proxy' /vagrant/docker/reverse-proxy

Stdout from the command:



Stderr from the command:

unable to prepare context: path "/vagrant/docker/reverse-proxy" not found

我认为这个错误与 vagrant 文件夹有关。喜欢访问或类似的东西。

谢谢

也许您的错误是由于将来宾配置为在 /vagrant 目录中有一个同步文件夹而导致的。这会用同步文件夹的内容覆盖整个文件夹。

我的个人设置如下:

config.vm.synced_folder "./code", "/home/vagrant/code"

这样,您就可以在根目录中创建一个新目录,而不会覆盖 /vagrant 目录中的密钥文件。

希望这对您有所帮助,此致。

修复:

我终于修好了!

问题是我的项目位于 Mac /Users/USERNAME/Documents/projectDocuments 文件夹中,但这不再有效,所以我已经搬家了将项目复制到我的主目录中名为 Projects 的新文件夹中。 /Users/USERNAME/Projects/project.

我希望我能帮助别人。

万一有人遇到同样的问题 - 而不是像接受的答案那样移动整个项目,您还可以提供 /sbin/nsfd 全磁盘访问权限:

https://github.com/hashicorp/vagrant/issues/10961#issuecomment-541070382

那么您仍然可以在 Documents 中拥有您的项目