无法访问 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/project
的 Documents 文件夹中,但这不再有效,所以我已经搬家了将项目复制到我的主目录中名为 Projects 的新文件夹中。 /Users/USERNAME/Projects/project
.
我希望我能帮助别人。
万一有人遇到同样的问题 - 而不是像接受的答案那样移动整个项目,您还可以提供 /sbin/nsfd 全磁盘访问权限:
https://github.com/hashicorp/vagrant/issues/10961#issuecomment-541070382
那么您仍然可以在 Documents 中拥有您的项目
我目前已经被一个问题卡住了 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/project
的 Documents 文件夹中,但这不再有效,所以我已经搬家了将项目复制到我的主目录中名为 Projects 的新文件夹中。 /Users/USERNAME/Projects/project
.
我希望我能帮助别人。
万一有人遇到同样的问题 - 而不是像接受的答案那样移动整个项目,您还可以提供 /sbin/nsfd 全磁盘访问权限:
https://github.com/hashicorp/vagrant/issues/10961#issuecomment-541070382
那么您仍然可以在 Documents 中拥有您的项目