LoginSignup
3
9

More than 5 years have passed since last update.

Vagrantにおける共有フォルダの使い方

Posted at

これまでにVagrantで立てた仮想環境上のファイルはAtomのRemote-ftpというパッケージを使って編集していたのですが、わざわざ接続しなくてもホストOSとゲストOSでフォルダを共有できる機能があることをお恥ずかしいことについ最近知ったのでまとめておきます。

Synced Folders

Vagrantが共有フォルダを実現する機能としてSynced Foldersというものがあります。
ホストOS(vagrantコマンドを叩く方)とゲストOS(仮想環境側)でファイルを共有するにあたって、デフォルトでは次のような環境が共有されています。

環境 共有フォルダ
ホストOS Vagrantファイルを持つフォルダ
ゲストOS /vagrant以下のもの

これによってホストOS側で作成したデータ、ゲストOS側で作成したデータが共に共有されることになります。

問題点

VagrantではゲストOS側からファイル・フォルダのパーミッションが変更できないようになっています
勝手に変更できたらセキュリティ上問題があるためこのような仕様となっているみたいです。

これはVagrantfileにおける

.
.
.
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder ".", "/vagrant"
.
.
.

の中にあるconfig.vm.synced_folderの部分で

config.vm.synced_folder ".", "/vagrant", mount_options: ['dmode=777','fmode=755']

のようにdmodeでディレクトリ、fmodeでファイルのパーミッションを設定することで解消されます。

また、config.vm.synced_folder "ホストOS側のフォルダ", "ゲストOS側のフォルダ"という仕組みになっているため、共有フォルダの指定する場所はここで変更することが可能です。

参考

  1. Vagrantとmacでフォルダを共有したいとき
  2. 【vagrant】共有フォルダのパーミッションで悩んだ話【chmodできない】
3
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
9