私の Vagrant box はベース Linux (科学的 Linux) から構築されており、(シェル スクリプトを使用して) プロビジョニング中に Apache がインストールされます。
最近、Vagrant ファイル (v2) を次のように変更しました。
config.vm.synced_folder "public", "/var/www/sites.d/example.com",
:owner => "apache", :group => "apache"
これは、ボックスがすでにプロビジョニングされており、再起動したばかりの場合にうまく機能します。
今、vagrant destroy && vagrant up
私はエラーが発生した後:
mount -t vboxsf -o uid=`id -u apache`,gid=`id -g apache`
/var/www/sites.d/example.com /var/www/sites.d/example.com
id: apache: User does not exist
これは明らかです - 最初の実行時には、Apache はまだインストールされていません。
もちろん、醜い回避策は、コメントアウトして基本的なプロビジョニングをsynced_folder
行い、コメントインしてから再起動することです。
それを解決するためのきれいなトリックはありますか?特にvagrant up
、箱が新品であっても、常に中断することなく実行されます。