Hello All,

I'm trying to test out the new docker support and it doesn't work for me. I've tried two different scenarios, and they both fail. I watched the Vagrant up [blog videos](http://www.vagrantup.com/blog/feature-preview-vagrant-1-6-docker-dev-environments.html) and [Robert Berger's github post](https://github.com/RobertBerger/vagrant-phusion-baseimage) for background info.

Environment (OSX 10.9.2):

        [wfroning@waf-pc vagrant]$ vagrant -v
        Vagrant 1.6.2
        [wfroning@waf-pc vagrant]$ vagrant box list
        freebsd91-amd64            (vmware_fusion, 0)
        hashicorp/precise64        (vmware_fusion, 1.1.0)
        mitchellh/boot2docker      (vmware_desktop, 0.8.0)
        phusion/ubuntu-12.04-amd64 (vmware_fusion, 2014.05.11)
        precise64                  (vmware_fusion, 0)
        raring64                   (vmware_fusion, 0)
        squeeze64                  (vmware_fusion, 0)
        [wfroning@waf-pc vagrant]$ vagrant plugin list
        vagrant-login (1.0.1, system)
        vagrant-share (1.0.1, system)
        vagrant-vmware-fusion (2.4.1)


## Scenario 1 ##
---

Use the native boot2docker support with a simple Vagrantfile:

        [wfroning@waf-pc vagrant]$ cat  Vagrantfile
        Vagrant.configure("2") do |config|
                config.vm.provider "docker" do |docker|
                        docker.image = "paintedfox/postgresql"
                end
        end

vagrant up --provider --debug pukes after a while with this:

INFO interface: error: An error occurred while executing `vmrun`, a utility for controlling
        VMware machines. The command and output are below:

Command: ["start", "/Users/wfroning/.vagrant.d/data/docker-host/.vagrant/machines/default/vmware_fusion/28a19efe-6b25-4a69-b2a7-a7e4f320e7c7/packer-vmware-iso.vmx", "nogui", {:notify=>[:stdout, :stderr]}]

        Stdout: 2014-05-15T07:40:28.902| ServiceImpl_Opener: PID 23848
        Error: The operation was canceled

        Stderr:
        An error occurred while executing `vmrun`, a utility for controlling
        VMware machines. The command and output are below:

Command: ["start", "/Users/wfroning/.vagrant.d/data/docker-host/.vagrant/machines/default/vmware_fusion/28a19efe-6b25-4a69-b2a7-a7e4f320e7c7/packer-vmware-iso.vmx", "nogui", {:notify=>[:stdout, :stderr]}]

        Stdout: 2014-05-15T07:40:28.902| ServiceImpl_Opener: PID 23848
        Error: The operation was canceled

        Stderr:
INFO interface: Machine: error-exit ["HashiCorp::VagrantVMwarefusion::Errors::VMRunError", "An error occurred while executing `vmrun`, a utility for controlling\nVMware machines. The command and output are below:\n\nCommand: [\"start\", \"/Users/wfroning/.vagrant.d/data/docker-host/.vagrant/machines/default/vmware_fusion/28a19efe-6b25-4a69-b2a7-a7e4f320e7c7/packer-vmware-iso.vmx\", \"nogui\", {:notify=>[:stdout, :stderr]}]\n\nStdout: 2014-05-15T07:40:28.902| ServiceImpl_Opener: PID 23848\nError: The operation was canceled\n\nStderr: "]

So I figure I will test out the boot2docker VM in Fusion. I get the dreaded VMWare "Upgrade VM" prompt and I click ok. It gets past the POST and complains of no OS. I try again without clicking upgrading the VM and... same problem.

So in summary boot2docker native support completely fails on OSX 10.9.2 + Fusion 6.0.3 because the boot2docker image is broke.

For those following the video posts from the [blog](http://www.vagrantup.com/blog/feature-preview-vagrant-1-6-docker-dev-environments.html), that was video 1.

## Scenario 2 ##
---

I then attempt video 2 from the blog with some hints from Robert Berger.

Vagrantfile:

        Vagrant.configure("2") do |config|
         config.vm.define "phusion" 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"
             v.ssh.port = "22"

             v.vm.provision "shell", inline: "echo Hello"
        
             v.vm.synced_folder "./keys", "/vagrant"
         end
        end

./docker/Vagrantfile:

        Vagrant.configure("2") do |config|

          # by default we use a 64 box
          #config.vm.box = "hashicorp/precise64"
          config.vm.box = "phusion/ubuntu-12.04-amd64"
          #config.vm.network :forwarded_port, guest: 4243, host: 4142

          # fix vmware gui
          #config.vm.provider :vmware_fusion do |fusion|
          #  fusion.gui = true
          #end

          # common stuff (32 and 64 bit)
          config.vm.provision "docker"
          config.vm.provision "shell", inline:
            "ps aux | grep 'sshd:' | awk '{print $2}' | xargs kill"
        end

A `vagrant up --provider=docker --debug` eventually errors out while waiting for the VM to come online. So I enable the Fusion GUI in ./docker/Vagrantfile to see what's going on.

"Do you want to upgrade this virtual machine?" Seriously... again? I don't upgrade and it pulls down phusion/baseimage starts the container and pukes.

INFO interface: error: The container started either never left the "stopped" state or
        very quickly reverted to the "stopped" state. This is usually
        because the container didn't execute a command that kept it running,
        and usually indicates a misconfiguration.

        If you meant for this container to not remain running, please
        set the Docker provider configuration "remains_running" to "false":

          config.vm.provider "docker" do |d|
            d.remains_running = false
          end
        The container started either never left the "stopped" state or
        very quickly reverted to the "stopped" state. This is usually
        because the container didn't execute a command that kept it running,
        and usually indicates a misconfiguration.

        If you meant for this container to not remain running, please
        set the Docker provider configuration "remains_running" to "false":

          config.vm.provider "docker" do |d|
            d.remains_running = false
          end
INFO interface: Machine: error-exit ["VagrantPlugins::DockerProvider::Errors::StateStopped", "The container started either never left the \"stopped\" state or\nvery quickly reverted to the \"stopped\" state. This is usually\nbecause the container didn't execute a command that kept it running,\nand usually indicates a misconfiguration.\n\nIf you meant for this container to not remain running, please\nset the Docker provider configuration \"remains_running\" to \"false\":\n\n config.vm.provider \"docker\" do |d|\n d.remains_running = false\n end"]

So I give up on hashicorp and switch to phusion with Fusion GUI disabled.

The phusion image also fails. Although, when I enable the GUI in docker/Vagrantfile it all starts to magically work.

I see docker get installed (oh yeah getting there).
I see 'phusion/baseimage' gets pulled down (don't tease me).
I see the container start up (is this really gonna happen?!?).

        ==> phusion: Hello

What... WHAT? Did that just happen? It flipping worked! Is that an angel I see? Did the clouds just part and a double rainbow shine through?

I'm going to buy a lotto ticket.

## Summary ##
---

1. There are a few bugs hiding in there. I have no clue why enabling the GUI was the trigger to get all this to work.

2. It's obvious the default images aren't getting the same amount of care and feeding that the phusion images are. This is disappointing.

3. Docker conflicts with CrashPlan (port 4243). Where the heck am I supposed to change the forwarded port when using the default docker provider (boot2docker)?

4. Finally, I pay for a VMWare license because that is the only way to support Vagrant, and it's an awesome product. Why doesn't Fusion work before Virtualbox?

Thanks,
Will

--
Will Froning
[email protected]

--
You received this message because you are subscribed to the Google Groups 
"Vagrant" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to