Ich verwende einen Linux-Desktop mit einem 3.2-Kernel (Ubuntu 12.04) und würde gerne mit Vagrants Docker Provider / Provisioning testen.
Also mache ich eine Vagrantfile in root:
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
Die Container-Vagrantfile (./docker/Vagrantfile) sieht folgendermaßen aus:
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 '' | xargs kill" end
(eigentlich sind diese Dateien aus dem Blogpost )
Das Problem ist, wenn ich eine
$ vagrant up --provider=docker
Ich erhalte folgende Fehlermeldung:
Die 'app' des Rechners wird mit dem 'Docker'-Provider hochgefahren ... Die ausführbare' Docker'-Instanz, die Vagrant ausführen möchte, wurde nicht in der PATH-Variablen gefunden. Das ist ein Fehler. Bitte vergewissern Sie sich, dass diese Software installiert ist und sich im Pfad befindet.
Ich habe eher erwartet, dass es eine Virtualbox-Instanz mit ./docker/Vagrantfile starten würde, das genaue Docking-Image, das für Docker bereitgestellt wird, und dass kein lokal installiertes Docker erforderlich wäre (was nicht möglich ist, da ich auf 3.2 bin). ?
Wenn jemand dies reproduzieren oder einen offensichtlichen Fehler erkennen kann, würde ich mich über einen Kommentar oder eine Antwort freuen. Vielen Dank!
Bearbeitet : Das obige Beispiel ist etwas komplizierter als zum Überprüfen des Problems erforderlich. Ich kann den Docker-Provider nicht wirklich verwenden, daher vermute ich einen Landstreicher-Fehler, es sei denn, hier ist etwas offensichtlich nicht in Ordnung.
Eine einfachere Art, mit dieser Vagrantdatei zu reproduzieren:
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
Wenn ich versuche, es zu benutzen:
$ 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.