2013-06-15 13 views
14

Chciałbym rozwijać moją aplikację Django Heroku w środowisku tak blisko stosu Cedika Heroku, jak to tylko możliwe, używając Vagrant.Prowadzenie Heroku Cedar Lokalnie za pomocą Vagrant

Najlepszym rozwiązaniem, jakie dotychczas znalazłem w budowaniu środowiska wyszydzanego, jest doskonały Eric Holmes "https://github.com/ejholmes/vagrant-heroku. Jednak to pole vagrant obecnie używa Pythona 2.6.x zamiast Pythona 2.7.4, którego używa moja aplikacja i domyślnie Heroku.

Drugim zasobem, który znalazłem, jest Heroku's https://github.com/heroku/stack-images. Nie próbowałem tego jeszcze, ale wydaje się, że oferuje sposób na lokowanie cedrowego stosu. Kończy się Pythonem 2.7.2.

Który z nich (lub coś innego) jest najlepszym sposobem na przejście? Mam środowisko programistyczne, które działa teraz - i korzysta z tego samego oprogramowania, z którego korzysta Heroku (PostgreSQL, Python 2.7.4 itd.) - ale chciałbym zasymulować niektóre inne aspekty środowiska Heroku (dostępna pamięć, miejsce na dysku, architektura wielu maszyn itp.).

Jestem skłonny do używania pudełka Erica Holmesa i dodawania Pythona 2.7.4 na https://askubuntu.com/questions/101591/how-do-i-install-python-2-7-2-on-ubuntu. Chciałbym zaoferować poprawkę do pracy Erica, ale nie jestem Rubyist/veewee ...

Aktualizacja 1: Innym możliwym źródłem: https://github.com/torchbox/vagrant-django-base.

Aktualizacja 2: Zdecydowałem się toczyć własne dostosowując z powyższych źródeł i innych. Są to pliki (Vagrantfile i vagrant_data/install.sh), z których aktualnie korzystam: https://gist.github.com/ErikEvenson/5801503. To prowadzi mnie do Pythona 2.7.3 i PostgreSQL 9.2.4 na pudełku Ubuntu 12.04 512 MB.

Chciałbym oddzielić serwer bazy danych od drugiego pudełka i pobrać serwer aplikacji na Ubuntu 10.04 z Pythonem 2.7.4.

Aktualizacja 3: Moja konfiguracja ewoluowała. To jest moja aktualna konfiguracja vagrant: https://gist.github.com/ErikEvenson/9763878.

Aktualizacja 4: W tym tygodniu wprowadziłem kilka aktualizacji do mojej konfiguracji. Najnowsza wersja to https://gist.github.com/ErikEvenson/9763878. Uwaga:

  • Używanie NFS zamiast synchronizacji folderów wirtualnych - ogromna poprawa wydajności.
  • Unikaj błędów dodawania gościa w bieżącej wersji VirtualBox.
  • Skorzystaj z nowo dostępnego Vagrant Cloud dla wersjonowanego pudełka podstawowego.

Update 5: Kilka aktualizacje tutaj - głównie wersje oprogramowania. Najnowsza wersja to https://gist.github.com/ErikEvenson/9763878. Z dopiskiem

  • Używa Vagrant 1.6.3
  • Używa PostgreSQL 9.3.3
  • Używa Pythona 2.7.7 i instaluje go od źródła.python 2.7.3 jest zachowywany jako pyton systemowy.
  • Blokuje wszystkie wersje zależności - szczególnie te instalowane przez apt-get i npm.
  • Używa hashicorp/precise64 jako podstawy.

Struktura plików w użyciu jest mniej więcej tak:

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

Aktualizacja 6: Okazuje Vagrant-vbguest on Rejestracja VirtualBox 4.3.14 poprawki niektórych błędów.

+2

Dziękuję za to, również szukałem rozwiązania .... wypróbowanie teraz! – Brandon

Odpowiedz

Powiązane problemy