Проблемы настройки Vagrantfile

Рейтинг: 0Ответов: 1Опубликовано: 21.03.2015

Что есть:

  • есть Vagrantfile

    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
      config.vm.box = "dduportal/boot2docker"
      config.vm.synced_folder ".", "/vagrant"
      config.vm.network :forwarded_port, guest: 80, host: 8080
      config.vm.network :private_network, ip: "192.168.56.101"
      config.vm.provision :docker do |d|
        d.build_image "/vagrant", args: "-t 'test_site'"
        d.run "test_site",
         args: "-p 80:80 -v '/vagrant:/var/www/test_site'",
         daemonize: true
      end
    end
    
  • есть Dockerfile, в котором подымается ubunta, устанавливается php+mysql и открываются порты EXPOSE 80 8080 443 3306 22.

Проблемы:

  • после vagrant up запускается dduportal/boot2docker, но docker build не происходит;
  • после запуска vagrant provision запускается docker build (успешно), но не запускается docker run;
  • после vagrant reload запускается docker run, но сразу завершается (проверял docker ps контейнера нету, а docker ps -a контейнер есть, но уже не работает).

Цели:

  • одной командой vagrant up устанавливался билд;
  • синхронизация папок windows через dduportal/boot2docker в ubuntu (для ide).

Дополнительное:

  • все попытки использовать нативные способы vagrant для работы с docker в виндовсе неудобны, а конкретно секция provider docker в vagrantfile приводит либо к ошибкам, либо к тому, что синхронизация папок доступна только через rsync (даже заставив работать на windows rsync, появились еще уйма проблем), поэтому отказался от этого способа вообще;
  • не разобрался, как в момент docker build использовать папки из dduportal/boot2docker без явного копирвания, то есть в папке /var/www/test_site должен лежать код из windows, чтобы запустился composer install, но залинковать папки можно только при docker run, и поэтому приходится заходить в контейре и запускать вручную composer install;
  • использую именно dduportal/boot2docker, потому что другие boot2docker автоматически хотят запустить provider docker, который я не могу использовать.

Итого

Хотел бы получить совет, как можно реализовать мои цели, или примеры, как Вы добились похожих целей.

Ответы

Ответов пока нет.