Должен ли я использовать vagrant destroy / up / reload / provision или что-то в этом роде каждый раз, когда я хочу изменить один из моих исходных файлов?

3948
michaelsnowden

Я недавно начал немного развиваться с vagrant и django в виртуальной машине.

Я использую свою машину и использую ее vagrant upдля уничтожения vagrant down.

Обе эти команды чертовски трудоемки, но мне часто приходится менять свой исходный код на стороне django, как, например, мой файл views.py, возможно, должен что-то добавить к нему.

В то время как у меня есть SSH'd в vm через vagrant ssh, я звоню, runи сервер устанавливается, но если я изменяю исходный файл и просто перезагружаю веб-страницу, это нормально? Или я должен выйти из SSH и повторно предоставить или перезагрузить мой виртуальный компьютер?

3

2 ответа на вопрос

3
StephenKing

Я думаю, что у вас есть какое-то недопонимание, и правильный ответ (со стороны) зависит от ваших точных настроек.

  • Процесс разрушения коробки (ВМ) запускается через vagrant destroy. Это выбрасывает все данные. В вашем случае вы закрыли виртуальную машину (используя vagrant down).
  • Когда вы отметили этот пост с помощью chef, кажется, что ваш сервер подготовлен через Chef, а также весь стек для запуска на нем Django, не так ли?
  • Если ваши рецепты шеф-повара написаны правильно (или: с целью обновления вашего приложения), запуск инициализации обновит ваш код в виртуальной машине. В более старых версиях Vagrant (IIRC <1.3) подготовка выполняется в vagrant reload. В более новых версиях вам придется добавить эту --provisionопцию, однако это даже не нужно. Чтобы запустить шеф-повар, просто позвоните vagrant provision. Это просто запускает шеф-повара, не перезагружая всю коробку (то есть, если ваши рецепты шеф-повара верны, вообще не нужны).
  • Часто используемая фраза «если ваши рецепты шеф-повара верны» означает, что рецепты должны, конечно, делать то, что необходимо, чтобы не только внести изменения кода в поле, но и сделать необходимые действия, чтобы сделать их активными (очистка кешей), перезапуск сервисов и т. д.). Но это зависит от многих .. Я бы сказал, на Джанго. Если таких вещей не хватает, down/ upможет помочь вам только потому, что он, например, остановил и запустил Apache (после перезагрузки).
  • Вам просто нужно убедиться, что то же самое, что вы сейчас запускаете вручную через SSH, также запускается рецептом Chef.

Я не уверен, откуда runпоступает команда. Я не мог найти ничего, связанного с Джанго.

Без дальнейшего кода, таким образом, трудно дать вам подробные советы.

Но предоставление вашего кода в виртуальную машину и перезагрузка - это своего рода вариант использования Vagrant.

Смотрите мой обновленный ответ для небольшого разъяснения. michaelsnowden 10 лет назад 0
0
michaelsnowden

Что ж, после невероятно простого теста я обнаружил, что могу просто отредактировать исходный код любого из моих файлов Django, сохранить файл и обновить веб-страницу, чтобы увидеть мой результат.

Вот что я имею в виду под «просто обновить веб-страницу»: browser before refresh

И после того, как я отредактирую, сохраню, обновлю страницу браузера: browser after refresh

То, что я имею в виду под «бегом», может быть чем-то конкретным в моих кулинарных книгах (я думаю, именно поэтому и СтивенКинг, и я ничего не могли найти по этому поводу). Вот как мой терминал выглядел во время этого: My terminal

Надеюсь, что проясняет мой ответ.

Но "да" как ответ на какой из ваших вопросов? StephenKing 10 лет назад 2
Ответ, безусловно, нуждается в уточнении. pabouk 10 лет назад 0
Хорошо, спасибо за разъяснения. StephenKing 10 лет назад 0
... Могу ли я получить не проголосовали тогда? michaelsnowden 10 лет назад 1

Похожие вопросы