基本的な使い方 - Synced Folders - Vagrant
Basic Usage
設定(Configuration)
同期フォルダはVagrantfile内にconfig.vm.synced_folder
キーワードを使い設定する。以下のように設定する
Vagrant.configure("2") do |config| # other config here config.vm.synced_folder "src/", "src/website" end
第1パラメータはホストマシンのディレクトリのパスを指定する。相対パスで指定した場合、プロジェクトのルートからの相対パスになる
第2パラメータはゲストマシン内の共有したいフォルダの絶対パスを指定する
※もし、ここで指定したフォルダがない場合、再帰的にフォルダを作成してくれる
オプション(options)
同期フォルダの設定をするときに、追加オプションパラメータも指定することもできる。追加オプションは下記のものになる
より詳しい使い方の例はこのセクションの下の方に書いてある。owner/group
の例では、1つの追加オプションがカンマで区切られている。
これらのオプションに加えて、特定の同期フォルダのタイプによってさらにオプションがつく場合がある。(RSyncとかVirtualBoxとか)
詳細についてはそれぞれのドキュメントを参照すること
組み込まれている同期フォルダタイプについてはほかのページで紹介されている
- create(boolean):
true
を指定すると、ホストにフォルダが存在しなかった場合、フォルダを作成する。デフォルトではfalse
- desabled(boolean):
true
を指定すると、同期フォルダの機能を無効にし、セットアップをしない。これは、以前に定義した同期フォルダの設定を無効にしたり、何かの条件によって同期しないようにするために使用する - group(string): 同期フォルダを所有するグループの設定。デフォルトではSSH接続しているユーザーになる。一部の同期フォルダタイプではグループの変更はできないようになっている
- mount_options(array): mountコマンドに渡す追加のマウントオプションのリスト
- owner(string): この同期フォルダの所有者になるユーザー。デフォルトではSSH接続しているユーザーになる。一部の同期フォルダタイプではグループの変更はできないようになっている
- type(string): 同期フォルダのタイプ。もし、指定していなかった場合、Vagrantがその環境に適切な同期フォルダのオプションを自動的に選ぶ。それ以外の場合、
nfs
などのタイプを指定できる - id(string): ゲストマシンでのこの同期フォルダのマウントポイントの名前。これはゲストマシン上でmountを実行すると表示される名前
有効にする(Enabling)
vagrant up
やvagrant reload
をしたときに自動的に有効になる
無効にする(Disabling)
disabled
オプションを追加することで同期フォルダを無効にできる
Vagrant.configure("2") do |config| config.vm.synced_folder "src/", "/srv/website", disabled: true end
デフォルトの/vagrant
フォルダの共有を無効にする場合には次のようにする
config.cm.synced_folder ".", "/vagrant", disabled: true
グループ/所有者を変更する(Modifying the Owner/Group)
デフォルトで、Vagrantはグループ/所有者がSSHユーザーに設定された同期フォルダをマウントします。場合によっては、グループと所有者が異なるフォルダをマウントするほうが良いときもある。
config.vm.synced_folder "src/", "srv/website", owner: "root", group: "root"
NOTE
mount_options
で定義された所有者IDとグループIDはowner
とgroup
の設定値よりも優先される
例として、次のように設定する
config.vm.synced_folder ".", "/vagrant", owner: "vagrant", group: "vagrant", mount_options: ["uid=1234", "gid=1234"]
同期フォルダの所有者は1234
というユーザーID、グループは1234
というグループIDでマウントされている。owner
とgroup
は無視されている。
シンボリックリンク(Symbolic Links)
シンボリックリンクをサポートしていて、同期フォルダの実行とホストとゲスト間の組み合わせは矛盾していない。
Vagrantはいろいろなハイパーバイザー(VirtualBoxなど)を設定することによってシンボリックリンクが使えるようになるようにしようとしているが、ホストとゲストの組み合わせによっては動作しないかも。
これによって、シンボリックリンクに依存している開発環境には影響を与えてしまう。
もし、これが重要であれば、すべてのホストとゲスト間でテストをすることをおすすめする。
参考文献
Basic Usage - Synced Folders - Vagrant by HashiCorp
目次
- Synced Folders
- Basic Usage
- NFS
- RSync
- SMB
- VirtualBox