環境はOS X Yosemite。
vagrant と virtualboxはインストール済み。
$ vagrant -v
Vagrant 1.7.2
$ VBoxManage -v
4.3.30r101610
Mac内の~/workspace
というディレクトリに、yourAppName
という名前のアプリを作成すると仮定し、meteor.vm.local:3000
というURLでアプリが公開されるようする。
仮想環境のセットアップ
$ vagrant box add ubuntu https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-i386-vagrant-disk1.box
$ cd ~/workspace
$ vagrant init ubuntu
Vagrantfile
が作成されるので、29行目付近を以下の様に修正。ipは何でも良い。
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network "private_network", ip: "192.168.33.44"
hosts
ファイルの末尾に以下を追記。
192.168.33.44 meteor.vm.local
仮想環境を起動。
$ vagrant up
仮想環境に接続。
$ vagrant ssh
仮想環境内での作業
Meteorのインストール。
$ curl https://install.meteor.com/ | sh
Meteorアプリケーション作成。/vagrant
直下に作ることで、ローカルのMacの~/workspace
とリンクするため、ローカルのエディタでコーディングができます。
$ cd /vagrant
$ meteor create yourAppName
ここで、
$ cd yourAppName
$ meteor
でアプリを起動しようとすると
$ meteor
[[[[[ /vagrant/yourAppName ]]]]]
=> Started proxy.
Unexpected mongo exit code 45. Restarting.
Unexpected mongo exit code 45. Restarting.
Unexpected mongo exit code 45. Restarting.
Can't start Mongo server.
MongoDB cannot open or obtain a lock on a file
というエラーで起動に失敗する。
色々調べてみると、パーミッションの問題らしい。
https://github.com/TelescopeJS/Telescope/issues/935
このサイトを参考に、以下の手順で解決。
$ cd ~
$ mkdir -p yourAppName/.meteor/local
$ sudo mount --bind /home/vagrant/yourAppName/.meteor/local/ /vagrant/yourAppName/.meteor/local/
上記手順をサーバ起動時に自動で行うようにしておく。
$ echo "sudo mount --bind /home/vagrant/yourAppName/.meteor/local/" >> ~/.bashrc
さて、
$ cd /vagrant/yourAppName
$ meteor
でアプリが起動するので、ブラウザからhttp://meteor.vm.local:3000
にアクセスすれば、以下の画面が表示されるはず。
あとは、お好きなエディタででコーディングするのみ!