vagrant - プロビジョニング スクリプトの実行後にフォルダーを同期しますか?

okwaves2024-01-25  9

プロビジョニング スクリプトの実行後に 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 を使用する方法はわかりました。

何かアドバイスはありますか?



------------------------

解決策を見つけました。

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 を実行します。サーバーのプロビジョニングが完了したら、次のように disabled を 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 を実行すると、フォルダーが同期されます。

ドキュメントにはこう書かれています

disabled (ブール値) - true の場合、この同期フォルダーは無効になり、 セットアップされません。これを使用して、以前に定義した機能を無効にすることができます。 同期されたフォルダーを削除するか、いくつかの基準に基づいて定義を条件付きで無効にします 外部要因。

そのため、これが私の問題を解決するための意図された方法の 1 つである可能性があると確信しました。

ただし書き後にフォルダーをマウントする機能リクエストがあります。これは閉じられて解決されていないようですので、他に方法はないと思います: https://github.com/bashicorp/vagrant/issues/936

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。