Vagrant 不读 Homestead.yaml
Vagrant doesn't read Homestead.yaml
我一直在尝试使用 Vagrant 在我的计算机和 Homestead VM 运行 之间同步一个文件夹。我的猜测是 Vagrant 没有读取我的 Homestead.yaml 文件,因为 VM 中没有反映任何变化。
我尝试了以下方法:
- 尝试重新加载,按上述方式编辑文件后停止并提供设置
- 检查制表符并确保我的 yaml 文件中有 2 个空格
- 重新检查挂载文件夹的路径。尝试了
/home/abhirath/Desktop/Laravel_Recipes
和 ~/Desktop/Laravel_Recipes
等变体
- 销毁并重新创建 VM
- 阅读随机教程,例如 this
- SSH 连接到我的虚拟机。我在那里没有看到任何文件夹
- 我在
Homestead.yaml
文件中将内存从 2048 更改为 512,并使用 sudo cat /proc/meminfo | grep MemTotal
检查了我的 VM 中的 RAM,它仍然显示 2048 MB
vagrant up
启用调试模式。我在调试日志中找不到任何相关内容
contents of ~/.homestead
- after.sh
- 别名
- Homestead.yaml
- Vagrantfile
Homestead.yaml
---
ip: "192.168.10.10"
memory: 512
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Desktop/Laravel_Recipes
to: /home/vagrant/Laravel_Recipes
sites:
- map: recipes.dev
to: /home/vagrant/Laravel_Recipes/public
databases:
- homestead
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
原因
我像其他人一样按照 Laravel's Website 上给出的教程进行操作。我将他们的 github 存储库克隆到 ~/Homestead
,就像教程中给出的那样。 运行 bash 脚本之后,目录 ~/.homestead
出现了。他们在 .homestead
目录中提到 运行 vagrant up
。它需要 Homestead
目录中的文件。
所以最好的解决办法是使用
git clone https://github.com/laravel/homestead.git ~/.homestead
而不是
git clone https://github.com/laravel/homestead.git Homestead
.
说明
原来我使用的是一个几乎是空的 Vagrantfile
,里面全是评论。因此我没有使用 Laravel 提供的 Vagrantfile
。我使用了 运行 vagrant init laravel/homestead
之后出现的默认 Vagrant 文件
普通的Vagrantfile
设置几乎为零。它不会为用户指定的设置寻找任何 YAML 或 JSON 文件。由于这个原因,我所做的每一个更改结果都是无用的。
vagrant 文件必须显式加载 Homestead.yaml
文件才能获取用户设置。您可以编辑 Vagrantfile
(您需要了解 Ruby 的基础知识或进行修补)或者只使用 Laravel.
附带的已配置 Vagrantfile
以下文章帮助我理解:
- Configure Vagrant with YAML
- Improved way of using Vagrant with YAML
- Override Vagrant configuration settings locally (per-dev)
当您执行 homestead up
从 Homestead.yaml 文件加载的现有配置时。
但是,如果您更改任何现有配置,在您执行之前不会受到影响 homestead provision
问题是在别名阶段用 init.sh 创建的 Vagrantfile 试图写入 .homestead 如果你有那个目录,它将被创建,你可以将它复制到 ~/Homestead 目录vagrant 会正常工作。否则你可以将 Vagrantfile 从 ~/Homestead/resources/localized 复制到 ~/Homestead
我一直在尝试使用 Vagrant 在我的计算机和 Homestead VM 运行 之间同步一个文件夹。我的猜测是 Vagrant 没有读取我的 Homestead.yaml 文件,因为 VM 中没有反映任何变化。
我尝试了以下方法:
- 尝试重新加载,按上述方式编辑文件后停止并提供设置
- 检查制表符并确保我的 yaml 文件中有 2 个空格
- 重新检查挂载文件夹的路径。尝试了
/home/abhirath/Desktop/Laravel_Recipes
和~/Desktop/Laravel_Recipes
等变体
- 销毁并重新创建 VM
- 阅读随机教程,例如 this
- SSH 连接到我的虚拟机。我在那里没有看到任何文件夹
- 我在
Homestead.yaml
文件中将内存从 2048 更改为 512,并使用sudo cat /proc/meminfo | grep MemTotal
检查了我的 VM 中的 RAM,它仍然显示 2048 MB vagrant up
启用调试模式。我在调试日志中找不到任何相关内容
contents of ~/.homestead
- after.sh
- 别名
- Homestead.yaml
- Vagrantfile
Homestead.yaml
---
ip: "192.168.10.10"
memory: 512
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Desktop/Laravel_Recipes
to: /home/vagrant/Laravel_Recipes
sites:
- map: recipes.dev
to: /home/vagrant/Laravel_Recipes/public
databases:
- homestead
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
原因
我像其他人一样按照 Laravel's Website 上给出的教程进行操作。我将他们的 github 存储库克隆到 ~/Homestead
,就像教程中给出的那样。 运行 bash 脚本之后,目录 ~/.homestead
出现了。他们在 .homestead
目录中提到 运行 vagrant up
。它需要 Homestead
目录中的文件。
所以最好的解决办法是使用
git clone https://github.com/laravel/homestead.git ~/.homestead
而不是
git clone https://github.com/laravel/homestead.git Homestead
.
说明
原来我使用的是一个几乎是空的 Vagrantfile
,里面全是评论。因此我没有使用 Laravel 提供的 Vagrantfile
。我使用了 运行 vagrant init laravel/homestead
普通的Vagrantfile
设置几乎为零。它不会为用户指定的设置寻找任何 YAML 或 JSON 文件。由于这个原因,我所做的每一个更改结果都是无用的。
vagrant 文件必须显式加载 Homestead.yaml
文件才能获取用户设置。您可以编辑 Vagrantfile
(您需要了解 Ruby 的基础知识或进行修补)或者只使用 Laravel.
以下文章帮助我理解:
- Configure Vagrant with YAML
- Improved way of using Vagrant with YAML
- Override Vagrant configuration settings locally (per-dev)
当您执行 homestead up
从 Homestead.yaml 文件加载的现有配置时。
但是,如果您更改任何现有配置,在您执行之前不会受到影响 homestead provision
问题是在别名阶段用 init.sh 创建的 Vagrantfile 试图写入 .homestead 如果你有那个目录,它将被创建,你可以将它复制到 ~/Homestead 目录vagrant 会正常工作。否则你可以将 Vagrantfile 从 ~/Homestead/resources/localized 复制到 ~/Homestead