Я использую рабочий стол linux с ядром 3.2 (Ubuntu 12.04) и хотел бы протестировать его с помощью провайдера / инициализации vagrants docker.
Поэтому я делаю Vagrantfile в корне:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define "app" do |v|
v.vm.provider "docker" do |d|
d.cmd = ["/sbin/my_init", "--enable-insecure-key"]
d.image = "phusion/baseimage"
d.has_ssh = true
d.vagrant_vagrantfile = "./docker/Vagrantfile"
end
v.ssh.username = "root"
v.ssh.private_key_path = "phusion.key"
end
end
Контейнеры vagrantfile (./docker/Vagrantfile) выглядят так:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "precise64"
config.vm.provision "docker"
config.vm.provision "shell", inline:
"ps aux |grep 'sshd:' | awk '{print $2}' | xargs kill"
end
(на самом деле эти файлы из поста в блоге)
Беда в том, когда я делаю
$ vagrant up --provider=docker
Я получаю следующую ошибку:
Приведение машины app к провайдеру Docker ... Исполняемый файл 'docker', который пытается запустить Vagrant, не найден в переменной PATH. Это ошибка Пожалуйста, убедитесь, что это программное обеспечение установлено и находится в пути.
Я скорее ожидал, что он запустит экземпляр virtualbox с ./docker/Vagrantfile, образом Precision64, предоставленным для Docker, и что не будет необходимости иметь локально установленный Docker (что невозможно, потому что я на 3.2)?
Если кто-то может воспроизвести это или заметить очевидную ошибку, я был бы признателен за комментарий или ответ. Спасибо!
Отредактировано: приведенный выше пример немного сложнее, чем нужно, чтобы проверить проблему. Я вообще не могу использовать провайдера докеров, поэтому я подозреваю, что это бродячая ошибка, если здесь явно не что-то не так.
Более простой способ воспроизвести с помощью этого Vagrantfile:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define "app" do |v|
v.vm.provider "docker" do |d|
d.cmd = ["/sbin/my_init", "--enable-insecure-key"]
d.image = "phusion/baseimage"
d.has_ssh = true
end
v.ssh.username = "root"
v.ssh.private_key_path = "phusion.key"
end
end
Когда я пытаюсь использовать это:
$ uname -a
Linux ubuntu1204 3.2.0-64-generic #97-Ubuntu SMP Wed Jun 4 22:04:21 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ vagrant up --provider=docker
Bringing machine 'app' up with 'docker' provider...
The executable 'docker' Vagrant is trying to run was not
found in the PATH variable. This is an error. Please verify
this software is installed and on the path.