【问题标题】:Sync folders after provision script has ran?配置脚本运行后同步文件夹?
【发布时间】:2020-12-24 05:22:33
【问题描述】:

是否可以在运行配置脚本后让 vagrant 同步文件夹?

我需要将访客文件夹与主机文件夹同步,但主机文件夹必须为空才能使配置脚本正常工作。用户和组也需要存在。在配置脚本运行之前,它们都不存在。我的配置脚本创建了用户和组。

同步的文件夹是 Magento 主题。 Magento 首先需要安装,然后才能同步目录,因为 Magento 不会安装到非空目录中。

这是我的 Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-18.04"
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.provision "shell", path: "provision.sh"
  config.vm.synced_folder ".", "/vagrant", disabled: true
  config.vm.synced_folder "app/design/frontend", 
              "/var/www/mage/app/design/frontend",
              create: false,
              owner: "mage",
              group: "www-data"
    
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "3000"
  end
end

我查看了触发器,但我知道如何在触发器中使用 config.vm.synced_folder

有什么建议吗?

【问题讨论】:

    标签: vagrant vagrantfile vagrant-provision


    【解决方案1】:

    我找到了解决办法。

    Vagrantfile 中将config.vm.synced_folder 设置为false(也适用于nfs):

    config.vm.synced_folder "app/design/frontend", 
              "/var/www/mage/app/design/frontend",
              type: "rsync",
              disabled: false,
              owner: "mage",
              group: "www-data"
    

    现在运行vagrant up。服务器配置完成后,将禁用更改为 true,如下所示:

    config.vm.synced_folder "app/design/frontend", 
              "/var/www/mage/app/design/frontend",
              type: "rsync",
              disabled: true,
              owner: "mage",
              group: "www-data"
    

    现在运行vagrant reload,文件夹将被同步。

    docs

    disabled (boolean) - 如果为 true,则此同步文件夹将被禁用并且 不会设置。 这可以用来禁用之前定义的 同步文件夹或有条件地禁用基于某些的定义 外部因素

    这让我相信这可能是解决我的问题的预期方法之一。

    有一个功能请求在提供后挂载文件夹,该请求似乎已关闭且未解决,因此我认为没有其他方法可以解决此问题:https://github.com/hashicorp/vagrant/issues/936

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多