前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

共有ディレクトリの定義

課題

ローカル環境で開発をしつつ、Vagrant上に構築したサーバーに共有ディレクトリを通じて反映したい。

言葉の定義

  • ホスト:Vagrantを起動するローカルPC
  • ゲスト:Vagrantによって起動するOS

例題

-ホストOS上の ./www というディレクトリを ゲストOS上の /vagrant/www として認識させる

  • Apacheの起動ユーザーからファイルの読み書きができるようwww-dataというユーザー・グループ権限をつける。

対応

config.vm.synced_folder という設定を記述する。

$ vi Vagrantfile

以下を追記する。ホストパスは相対パスが可能。相対パスにするとVagrantfileがあるディレクトリが起点になる。ゲストパスは絶対パスにする必要がある。createをtrueにするとホストPATHが存在しない場合に生成してくれる。ゲスト側ではないので注意。

config.vm.synced_folder [ホストPATH], [ゲストPATH], [オプション設定], ...

具体例

  config.vm.synced_folder "./www", "/vagrant/www",
    create: true,
    owner: "www-data",
    group: "www-data"

トラブルシューティング

* The shared folder guest path must be absolute: {:owner=>"www-data", :group=>"www-data"}
* The host path of the shared folder is missing: ./www/vagrant/www

ホストPATHとゲストPAHTの間にカンマを入れ忘れるとホストPATHとして繋げて認識されてしまった場合に発生。
ゲストPATHの部分にオプション設定がセットされ、エラーが出る。