2013-06-15 7 views
14

Je voudrais développer mon application Django Heroku dans un environnement aussi proche que possible de la pile Cedar d'Heroku en utilisant Vagrant.Exécuter Heroku Cedar localement en utilisant Vagrant

La meilleure solution que j'ai trouvée jusqu'à présent pour construire l'environnement simulé est l'excellent https://github.com/ejholmes/vagrant-heroku d'Eric Holmes. Cependant, cette boîte errante utilise actuellement python 2.6.x au lieu de Python 2.7.4 mon application utilise et Heroku par défaut.

L'autre ressource que j'ai trouvée est https://github.com/heroku/stack-images de Heroku. Je ne l'ai pas encore essayé, mais il semble offrir un moyen de créer une pile de cèdre localement. Il finit avec Python 2.7.2.

Lequel de ces (ou quelque chose d'autre) est le meilleur chemin à parcourir? J'ai un environnement de développement qui fonctionne maintenant - et il utilise tous les logiciels qu'Heroku utilise (PostgreSQL, Python 2.7.4, etc.) - mais je voudrais simuler certains des autres aspects de l'environnement Heroku (mémoire disponible, espace disque, architecture multi-machine, etc.). Je penche pour utiliser la boîte d'Eric Holmes et ajouter Python 2.7.4 par https://askubuntu.com/questions/101591/how-do-i-install-python-2-7-2-on-ubuntu. Je propose un patch pour le travail d'Eric, mais je ne suis pas Rubyist/veewee ...

Mise à jour 1: Une autre ressource possible: https://github.com/torchbox/vagrant-django-base.

Mise à jour 2: J'ai décidé de rouler ma propre en adaptant des sources ci-dessus et d'autres. Ce sont les fichiers (Vagrantfile et vagrant_data/install.sh) que j'utilise actuellement avec un certain succès: https://gist.github.com/ErikEvenson/5801503. Cela m'amène à Python 2.7.3 et PostgreSQL 9.2.4 sur une boîte Ubuntu 12.04 512 Mo.

Je voudrais séparer le serveur de base de données avec une deuxième boîte et obtenir le serveur d'application sur Ubuntu 10.04 avec Python 2.7.4.

Mise à jour 3: Ma configuration a évolué. C'est ma config vagabond actuelle: https://gist.github.com/ErikEvenson/9763878.

Mise à jour 4: J'ai effectué plusieurs mises à jour de ma configuration cette semaine. Le dernier en date est https://gist.github.com/ErikEvenson/9763878. Remarque:

  • Utilisez la synchronisation de dossiers NFS au lieu de la virtualbox - une amélioration considérable des performances.
  • Évitez les erreurs d'ajout d'invité dans la version actuelle de VirtualBox.
  • Utilisez le Vagrant Cloud nouvellement disponible pour la boîte de base versionnée.

Mise à jour 5: Plusieurs mises à jour ici - la plupart des versions de logiciels. Le dernier en date est https://gist.github.com/ErikEvenson/9763878. À noter:

  • Utilise Vagrant 1.6.3
  • Utilise PostgreSQL 9.3.3
  • Utilise python 2.7.7 et il installe de la source.python 2.7.3 est retenu comme le système python.
  • verrouille toutes les versions de dépendance - en particulier ceux qui sont installés via apt-get et NPM.
  • Utilise hashicorp/precise64 comme boîte de base.

La structure de fichier à utiliser est quelque chose comme ceci:

- Project directory 
-- vagrant_data 
--- db 
---- install.sh 
---- memcached.conf 
---- pg_hba.conf 
---- postgresql.conf 
---- redis.conf 
--- web 
---- install.sh 
-- Vagrantfile 

Mise à jour 6: Tourne-errante vbguest sur depuis VirtualBox 4.3.14 corrige quelques bugs.

+2

Merci pour cela, j'ai aussi cherché une solution .... essayant le vôtre maintenant! – Brandon

Répondre

2

Vous pouvez essayer Dokku qui soutiennent Heroku buildpacks

Questions connexes