Meteor dans une box Vagrant sous OSX

dev, meteor, vagrant

J'ai été consulté dernièrement pour auditer une application Meteor.

Celle ci était relativement classique au détail près qu'elle nécessitait le paramétrage de fichiers de configuration dans des répertoires linux. Afin de ne pas trop polluer ma machine de travail OSX, j'ai décidé d'isoler le projet en le faisant tourner dans une VM.

Je vous présente ici les étapes qui m'ont permis de faire tourner Meteor dans Vagrant.

Créer une box

$ vagrant init ubuntu/trusty64
$ vagrant up

Installer meteor dans la box

$ vagrant ssh
$ curl https://install.meteor.com/ | sh

Créer un projet meteor

Pour l'exemple c'est plus simple mais ça fonctionne aussi avec un projet existant.

$ cd /vagrant
$ meteor create my app
$ cd myapp/.meteor
$ la -la

Vous devriez voir un répertoire local, sinon créez le :

$ mkdir local

Créer la même structure dans /home/vagrant

$ cd ~
$ mkdir -p myapp/.meteor/local

Monter le répertoire .local de /vagrant vers celui créé dans /home/vagrant de façon persistante

$ echo "sudo mount --bind /home/vagrant/myapp/.meteor/local/ /vagrant/myapp/.meteor/local/" >> ~/.bashrc && source ~/.bashrc
$ mount

Il doit y avoir cette ligne :

/home/vagrant/myapp/.meteor/local on /vagrant/myapp/.meteor/local type none (rw,bind)

On ne monte que le répertoire local et non le répertoire .meteor entier afin de pouvoir continuer à éditer son contenu depuis le répertoire host OSX.

Optionnel, ajouter de la swap, meteor est gourmand...

$ sudo fallocate -l 1000M /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ echo "/swapfile none swap defaults 0 0" | sudo tee --append /etc/fstab > /dev/null

Démarrer meteor

$ cd /vagrant/myapp
$ meteor

Et voilà.