Как ускорить повторное создание виртуальной машины для Discourse в среде VirtualBox / Vagrant / Windows

Повторное создание виртуальной машины для Discourse может потребоваться Вам в следующих случаях:

  • если создание предыдущей виртуальной машины завершилось сбойно
  • если предыдущая виртуальная машина была создана неправильно, и проще пересоздать виртуальную машину заново, чем исправлять
  • если Вам нужно создать ещё один сайт на Discourse

Контейнер (образ виртуальной машины) для Discourse занимает почти 800 мегабайтов, расположен на Amazon S3, и когда в США и Европе рабочий день, то его скачка может занимать минут 15 даже при максимальной скорости интернет-канало между Вами и Вашим провайдером.

Повторное создание виртуальной машины можно значительно ускорить, если кэшировать контейнер на своём локальном компьютере.

Шаг 1.

Скачайте свежий контейнер Discourse к себе на локальный компьютер:

# Папка для локального хранения контейнеров Discourse. \
dir="C:/work/discourse/boxes"; \
# Укажите здесь веб-адрес свежего контейнера Discourse. \
# Его можно посмотреть в значении параметра «config.vm.box_url» Vagrantfile дистрибутива Discourse. \
url="http://discourse-vms.s3.amazonaws.com/discourse-1.3.0.box"; \
# Имя файла локальной копии свежего контейнера Discourse. \
filename=$(basename "$url"); \
# Создаём папку (при необходимости рекурсивно). \
mkdir -p $dir; \
# Скачиваем контейнер Discourse. \
curl -L -o $dir/$filename $url

Шаг 2.

Укажите путь к локальной копии контейнера в параметре config.vm.box_url Vagrantfile:

# Сначала пытаемся загрузить контейнер Discourse из локального кэша:
config.vm.box_url = ['file:///c:/work/discourse/boxes/discourse-1.3.0.box', 'http://discourse-vms.s3.amazonaws.com/discourse-1.3.0.box']