Подтвердить что ты не робот

Могу ли я использовать Docker Compose для предоставления Vagrant напрямую?

У меня есть файл бродяг, который вызывает только базовый сервер Ubuntu, а затем полагается на оболочку script для выполнения инициализации. И эта оболочка script предназначена только для установки Docker и Docker Compose для настройки различных контейнеров, которые у меня есть.

Имеет ли смысл использовать оболочку script для этого? Или есть способ рассказать Вагранту о том, чтобы напрямую предоставить Docker Compose? Я не знаю, насколько это было бы от уже существующего помощника Докера в Vagrant.

4b9b3361

Ответ 1

Недавно я поднял тот же вопрос, и я создал плагин для бродячего создания, который устанавливает docker-compose и поднимает докер, используя его. Чтобы использовать его:

  • Установите плагин: vagrant plugin install vagrant-docker-compose
  • Добавьте в свой Vagrantfile следующие строки.

    config.vm.provision :docker
    config.vm.provision :docker_compose, yml: "/vagrant/docker-compose.yml", rebuild: true, run: "always"
    

Для полного примера см. https://github.com/leighmcculloch/vagrant-docker-compose

Ответ 2

Похоже, что с бродягой 1.7.2 не существует прямой поддержки через Docker Provisioner для выполнения этого типа операции. У поставщика также не было упоминания об этом. Вагрантские документы: подготовка докеров, Вагрантные документы: команды Docker

Я предполагаю, что сторонники бродяг, как и в этой версии, считают, что Vagrantfile при использовании с поставщиком Docker предлагает подобное поведение. Это может объяснить, почему они не рискнули добавить прямую поддержку Fig до того, как она была заменена Docker Compose.

Я обнаружил, что использование Docker с Vagrant требует от вас найти правильное сочетание использования каждого инструмента, который вы найдете оптимальным для себя. Например, вы можете найти команды Dockerfiles и Docker, такие как docker, более интуитивно понятные, чем попытка реализовать эту логику в Vagrantfile. Кроме того, вы можете попробовать гибрид Dockerfiles и использовать Vagrant для ссылки на Dockerfiles, который дает вам логику Docker в файле Docker и сборку "оркестровки" с использованием обычного Vagrantfile.

Вот как это выглядит:

  • Используйте очень простую конфигурацию провайдера Vagrant Docker, полагайтесь на Dockerfile для всего остального

    Используйте d.build_dir = "." для ссылки на Dockerfile

  • Используйте помощник Docker в Vagrant, чтобы начать все

    vagrant up --provision-with docker