こんにちは、フリーランスエンジニアのせいや(@knkSeiya)です。
Vagrantは初回の $ vagrant up 実行時にプロビジョニングされ、vagrantfileに従って仮想環境が構築されます。
今回、vagrantfileで指定されたフォルダ同期がうまく動作せず、プロビジョニングに失敗する問題が発生しました。
結論を言うと、Vagrant本体のバージョンをv2.2.7にダウングレードすることでフォルダ同期が動くようになりプロビジョニングが成功しました。
備忘録として詳細を残しておきます。
問題発生時のバージョン
問題発生時の各バージョン情報です。
ホストOS | macOS Catalina (10.15.6) |
Vagrant | 2.2.10 |
VirtualBox | 6.1.14 |
VagrantとVirtualBoxは2020/10/2時点の最新バージョンでした
フォルダが同期されない問題が発生
発生した問題は、vagrantfileに指定したホスト〜ゲスト間のフォルダ同期が動かないことです。
config.vm.synced_folder "host_path", "guest_path", options
上記のコマンドでフォルダ同期しますが、こいつが上手く動きませんでした。
Vagrantのプロビジョニングで同期したフォルダの内容に期待して環境構築をすることもあると思いますが、フォルダが同期されていないので当然エラーとなってプロビジョニングが上手く行きません。
VMは起動しているし、 $ vagrant ssh でログインもできるけどsynced_folderで指定したフォルダは空という状態で困りました。
Vagrantのバージョンをv2.2.7に下げて成功
結局のところ、Vagrantのバージョンを2.2.10から2.2.7に下げることで解決しました。
Vagrant 2.2.7はHashiCorpのサイトからダウンロードできます。
Vagrant v2.2.10をアンインストールしてv2.2.7を入れ直す
Vagrantの新しいバージョンをインストール済みの場合は一旦アンインストールする必要があります。
アンインストールする際は以下のディレクトリを削除するようです。
- /Appliations/Vagrant
- /usr/bin/vagrant
- /usr/local/bin/vagrant
- /Users/ユーザ名/.vagrant.d
- /opt/vagrant
いくつかのディレクトリはなかったため、僕は以下のディレクトリを削除しました。
$ rm -rfd /usr/local/bin/vagrant
$ rm -rfd /Users/ユーザ名/.vagrant.d
$ rm -rfd /opt/vagrant
アンインストール後、改めてVagrantをインストールして $ vagrant up すれば完了です。
ひとまず開発環境が整って良かった・・・。