mitchellh / boot2docker-vagrant-box Goto Github PK
View Code? Open in Web Editor NEWPacker scripts to build a Vagrant-compatible boot2docker box.
Packer scripts to build a Vagrant-compatible boot2docker box.
Now when trying to halt a boot2docker box I get this:
$ vagrant halt
[default] Attempting graceful shutdown of VM...
The guest operating system of the machine could not be detected!
Vagrant requires this knowledge to perform specific tasks such
as mounting shared folders and configuring networks. Please add
the ability to detect this guest operating system to Vagrant
by creating a plugin or reporting a bug.
Vagrant: 1.4.2
Virtualbox: 4.3.4
Docker 1.0.0 appears to use 2375 port instead of older 4243
Hi Folks,
I am trying to build a virtual box machine using my own Windows 10 disc image. After validating my JSON and Template file, while building I am getting below error for guest os type:
==> virtualbox-iso: Downloading or copying Guest additions
virtualbox-iso: Downloading or copying: file:///C:/Program%20Files/Oracle/VirtualBox/VBoxGuestAdditions.iso
==> virtualbox-iso: Downloading or copying ISO
virtualbox-iso: Downloading or copying: file:///C:/Tom/Vagrant/Windows_10/SW_DVD5_Win_Pro_10_1511.1_64BIT_English_MLF_X20-93914.iso
==> virtualbox-iso: Creating virtual machine...
==> virtualbox-iso: Error creating VM: VBoxManage error: VBoxManage.exe: error: Guest OS type 'windows10' is invalid
==> virtualbox-iso: VBoxManage.exe: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBoxWrap, interface IVirtualBox, callee IUnknown
==> virtualbox-iso: VBoxManage.exe: error: Context: "CreateMachine(bstrSettingsFile.raw(), bstrName.raw(), ComSafeArrayAsInParam(groups), bstrOsTypeId.raw(), createFlags.raw(), machine.asOutParam())" at line 273 of file VBoxManageMisc.cpp
==> virtualbox-iso: Deleting output directory...
Build 'virtualbox-iso' errored: Error creating VM: VBoxManage error: VBoxManage.exe: error: Guest OS type 'windows10' is invalid
VBoxManage.exe: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBoxWrap, interface IVirtualBox, callee IUnknown
VBoxManage.exe: error: Context: "CreateMachine(bstrSettingsFile.raw(), bstrName.raw(), ComSafeArrayAsInParam(groups), bstrOsTypeId.raw(), createFlags.raw(), machine.asOutParam())" at line 273 of file VBoxManageMisc.cpp
==> Some builds didn't complete successfully and had errors:
--> virtualbox-iso: Error creating VM: VBoxManage error: VBoxManage.exe: error: Guest OS type 'windows10' is invalid
VBoxManage.exe: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBoxWrap, interface IVirtualBox, callee IUnknown
VBoxManage.exe: error: Context: "CreateMachine(bstrSettingsFile.raw(), bstrName.raw(), ComSafeArrayAsInParam(groups), bstrOsTypeId.raw(), createFlags.raw(), machine.asOutParam())" at line 273 of file VBoxManageMisc.cpp
==> Builds finished but no artifacts were created.
I'm trying to boot this box on vmware using the example Vagrantfile from: http://docs.vagrantup.com/v2/docker/basics.html
When I run vagrant up --provider=docker
and monitor the progress in the GUI, I can see that VMWare is trying to boot from PXE instead of booting into Linux, and then it just hangs there.
I've tested this on a coworkers machine that exhibits the exact same problem.
boot2docker sets up the docker daemon (in the guest vm) to listen to the client (in the host). This is useful, as docker commands can be run from the host.
One option:
/var/run/docker.sock
)config.vm.network :forwarded_port, guest:<port>, host: <port>
boot2docker-vagrant-box
readme says "use docker -H localhost:<port>
from the host"$ vagrant up --no-parallel
Bringing machine 'db' up with 'docker' provider...
==> db: Docker host is required. One will be created if necessary...
db: Vagrant will now create or start a local VM to act as the Docker
db: host. You'll see the output of the `vagrant up` for this VM below.
db:
db: Checking if box 'mitchellh/boot2docker' is up to date...
db: Clearing any previously set network interfaces...
db: Preparing network interfaces based on configuration...
db: Adapter 1: nat
db: Forwarding ports...
db: 2375 => 2375 (adapter 1)
db: 5432 => 6111 (adapter 1)
db: 6379 => 7111 (adapter 1)
db: 9200 => 9200 (adapter 1)
db: 22 => 2222 (adapter 1)
db: Running 'pre-boot' VM customizations...
db: Booting VM...
db: Waiting for machine to boot. This may take a few minutes...
db: SSH address: 127.0.0.1:2222
db: SSH username: docker
db: SSH auth method: private key
db: Warning: Connection timeout. Retrying...
db: Warning: Authentication failure. Retrying...
...
db: Warning: Authentication failure. Retrying...
db: Warning: Authentication failure. Retrying...
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.
If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.
If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.
If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.
Vagrant file:
VAGRANTFILE_API_VERSION = "2"
ENV['VAGRANT_DEFAULT_PROVIDER'] ||= 'docker'
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define "db" do |app|
app.vm.provider "docker" do |d|
d.image = "postgres"
d.name = "db"
d.ports = ['5432:5432']
d.vagrant_vagrantfile = "Vagrantfile.host"
end
end
end
Vagrantfile.host:
Vagrant.configure("2") do |config|
config.vm.box = "mitchellh/boot2docker"
config.vm.provider "virtualbox" do |v|
v.check_guest_additions = false
v.functional_vboxsf = false
v.customize ['modifyvm', :id, '--memory', 4096]
v.customize ['modifyvm', :id, '--acpi', 'on']
v.customize ['modifyvm', :id, '--cpus', 4]
v.customize ['modifyvm', :id, '--cpuexecutioncap', '100']
v.customize ['modifyvm', :id, '--natdnshostresolver1', 'on']
v.customize ['modifyvm', :id, '--natdnsproxy1', 'on']
end
config.nfs.functional = false
config.vm.network :forwarded_port, guest: 5432, host: 6111
config.vm.network :forwarded_port, guest: 6379, host: 7111
config.vm.network :forwarded_port, guest: 9200, host: 9200
end
OS: Mac OS X 10.10.1
Virtualbox: 4.3.20
Tried on both Vagrant version 1.7.2
and 1.6.5
.
Boot2Docker-cli version: 1.4.1
Can't seem to start the box on vagrant Vagrant 1.4.0.
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["import", "-n", "/Users/emilebosch/.vagrant.d/boxes/boot2docker/virtualbox/box.ovf"]
Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interpreting /Users/emilebosch/.vagrant.d/boxes/boot2docker/virtualbox/box.ovf...
VBoxManage: error: 'Linux_64' is not a valid Guest OS type
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee IAppliance
VBoxManage: error: Context: "Interpret" at line 330 of file VBoxManageAppliance.cpp
Version of vboxmanage:
4.2.18r88780
Any ideas?
Packer support being worked on here https://github.com/rickard-von-essen/packer-parallels
What would be involved in making Parallels Desktop Just Work with this box?
cc: @legal90
Will it be possible to enabled synced folders in future?
Hi,
I'm running Vagrant 1.4.1 and VirtualBox 4.3.6 on OS X 10.8.5. Mine boots fine but has no internet connection:
docker@boot2docker:~$ ping google.com
(hangs)
This is running a busybox docker instance, is that right? Should it have a network connection?
Also, and this isn't a bug really, but there's no "/vagrant" folder, I'd love if the docker host in the vagrant would run with "-v" and hook up volumes to the outter folder where I'm booting this from, is that possible?
Thanks,
-G
Here's a repost of hashicorp/vagrant#5287 :
I'm testing the docker provider using force_host_vm = true to instantiate a VirtualBox boot2docker VM on Linux (trying to test what would happen when on Windows).
It seems that the VM is created using only 8 Mb of graphic memory, which VirtualBox reports as insufficient for displaying the graphic console (tells that 9 Mb is the minimum),
Hence, the VirtualBox gui = true won't apply and the VM stays headless, which doesn't help when vagrant ssh won't work, which renders it complex to login to the VM for debugging.
I'd suggest to change the defaults so that 9 Mb are used.
AFAIU, it is possible to workaround this by using a custom Vagrantfile for boot2docker, like:
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define "app" do |app|
app.vm.provider "docker" do |d|
d.force_host_vm = true
d.build_dir = "."
d.vagrant_vagrantfile = 'Vagrantfile_hostVM'
end
end
where Vagrantfile_hostVM contains:
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "mitchellh/boot2docker"
config.vm.provider "virtualbox" do |vb|
vb.gui = true
vb.customize ["modifyvm", :id, "--vram", "36"]
end
...
I'm trying to build from source. Following the instructions on your README.md, after vagrant destroy --force
, I run packer build template.json
. It immediately refuses to run with the following error:
1 error(s) occurred:
Versions of the stuff I used to build it:
Looks like rootfs is being run off the RAM disk which is where docker images are being written to. So a 512MB VM gives you a rootfs of ~512MB.
Too tired to follow through on this, but I will try to be more helpful in the morning checking upstream in boot2docker.
Provisioning is not working out-of-the-box due to lack of /bin/bash.
Is it wise to add config.ssh.shell = "sh" to Vagrantfile in order to make it work?
Hi there,
I destroyed the VM and after a vagrant up I still get a boot2docker vm with docker 1.2 inside.
Do I have to wait until you bump the version to 1.3 ?
I removed my ~/.vagrant.d/boxes/mitchellh-VAGRANTSLASH-boot2docker/
See my log:
mysql: Box 'mitchellh/boot2docker' could not be found. Attempting to find and install...
mysql: Box Provider: virtualbox
mysql: Box Version: >= 0
mysql: Loading metadata for box 'mitchellh/boot2docker'
mysql: URL: https://atlas.hashicorp.com/mitchellh/boot2docker
mysql: Adding box 'mitchellh/boot2docker' (v1.2.0) for provider: virtualbox
mysql: Downloading: https://atlas.hashicorp.com/mitchellh/boxes/boot2docker/versions/1.2.0/providers/virtualbox.box
Please, add the ability to automatically forward the exposed ports to the host.
Let's say I'm using dockerfile/elasticsearch. Its Dockerfile exposes ports 9200 and 9300.
Here's the Vagrantfile I'm using:
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define "elasticsearch" do |es|
es.vm.provider "docker" do |container|
container.image = "dockerfile/elasticsearch"
container.ports = [ "9200:9200", "9300:9300" ]
container.remains_running = true
end
end
end
On the boot2docker guest everything is fine
docker@boot2docker:~$ curl -sS -X GET http://127.0.0.1:9200/
{
"status" : 200,
"name" : "Sleepwalker",
"version" : {
"number" : "1.1.1",
"build_hash" : "f1585f096d3f3985e73456debdc1a0745f512bbc",
"build_timestamp" : "2014-04-16T14:27:12Z",
"build_snapshot" : false,
"lucene_version" : "4.7"
},
"tagline" : "You Know, for Search"
}
But no port is forwarded to the host
$ vagrant up elasticsearch --provider=docker
Bringing machine 'elasticsearch' up with 'docker' provider...
==> elasticsearch: Docker host is required. One will be created if necessary...
elasticsearch: Docker host VM is already ready.
==> elasticsearch: Syncing folders to the host VM...
elasticsearch: Rsyncing folder: <snip>/elasticsearch-docker/ => /var/lib/docker/docker_1401201151_90455
==> elasticsearch: Warning: When using a remote Docker host, forwarded ports will NOT be
==> elasticsearch: immediately available on your machine. They will still be forwarded on
==> elasticsearch: the remote machine, however, so if you have a way to access the remote
==> elasticsearch: machine, then you should be able to access those ports there. This is
==> elasticsearch: not an error, it is only an informational message.
==> elasticsearch: Creating the container...
elasticsearch: Name: elasticsearch-docker_elasticsearch_1401201153
elasticsearch: Image: dockerfile/elasticsearch
elasticsearch: Volume: /var/lib/docker/docker_1401201151_90455:/vagrant
elasticsearch: Port: 2222:22
elasticsearch: Port: 9200:9200
elasticsearch: Port: 9300:9300
elasticsearch:
elasticsearch: Container created: ba322db5bdfe082a
==> elasticsearch: Starting container...
==> elasticsearch: Provisioners will not be run since container doesn't support SSH.
massimo@host ~/elasticsearch-docker $ curl -sS -X GET http://127.0.0.1:9200/
curl: (7) Failed connect to 127.0.0.1:9200; No error
Am I missing something?
Vagrant version 1.4.3.
I ran the vagrant init boot2docker https://github.com/mitchellh/boot2docker-vagrant-box/releases/download/v0.4.0/boot2docker.box
, and the box downloads and tries to start, but vagrant ends up waiting for the machine to boot forever.
I'll be trying the prior release and see if that works.
Since #8 bumped the iso version, would it be possible to make a new box release?
I tried to use it with parallels but it seems like Vagrant Cloud is not up to date with that. Do I need to build it myself or will vagrant cloud soon be updated?
$ vagrant init boot2docker vagrant init boot2docker https://github.com/mitchellh/boot2docker-vagrant-box/releases/download/v0.4.0/boot2docker.box
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
gareth: ~/Code/boot2docker
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'boot2docker'...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["import", "/Users/gareth/.vagrant.d/boxes/boot2docker/virtualbox/box.ovf"]
Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interpreting /Users/gareth/.vagrant.d/boxes/boot2docker/virtualbox/box.ovf...
VBoxManage: error: 'Linux_64' is not a valid Guest OS type
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee IAppliance
VBoxManage: error: Context: "Interpret" at line 330 of file VBoxManageAppliance.cpp
Or is that just a script one uses if dealing with VirtualBox, and when using this one should just set DOCKER_HOST
?
Should one set DOCKER_HOST
in one's ~/.profile
(or equivalent) if it should persist? Is there a smarter/automatic way to manage the environment variable?
Hi,
Thanks for providing this. Works great. Wondering if you will be upgrading to support 1.3.1 any time soon.
Hi
I am trying to boot a plain VM.
vagrant init mitchellh/boot2docker
vagrant up
In the log file, after mounting without errors
INFO ssh: Execute: VBoxService --version (sudo=true)
DEBUG ssh: stderr: VBoxService: not found
.
.
Cannot create target directory /tmp/selfgz76531191
DEBUG ssh: stderr: You should try option --target OtherDirectory
I am running Windows 7 64, Vagrant 1.6.5, boot2docker 1.3.1
Any idea how to fix it?
Thanks
A
I'm sure it's on your radar, just filing this as a reminder :)
I followed the build instructions (to get the new PR with the filesystem fix) but get a packer error at the end:
$ packer build template.json
virtualbox-iso output will be in this color.
vmware-iso output will be in this color.
1 error(s) occurred:
* Due to large file sizes, an iso_checksum is required
Something I did wrong?
my Dockerfile
Karaf Base Package build
FROM 10.200.187.96:5000/ubuntu
MAINTAINER Shuyun "[email protected]"
# install jdk
RUN apt-get update
RUN apt-get install -y software-properties-common
RUN add-apt-repository -y ppa:webupd8team/java
RUN apt-get update
RUN echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections
RUN apt-get install -y oracle-java7-installer
RUN apt-get clean
RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle" >> /etc/environment
ENV JAVA_HOME /usr/lib/jvm/java-7-oracle
# install supervisor
RUN apt-get install -y supervisor
RUN mkdir -p /var/log/supervisor
# install sshd
RUN apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:123456' | chpasswd
RUN sed --in-place=.bak 's/without-password/yes/' /etc/ssh/sshd_config
# install maven
RUN apt-get install -y maven
# install karaf
WORKDIR /home/runner
RUN apt-get update
RUN apt-get -y install wget
RUN apt-get -y install unzip
RUN wget -q http://repo2.maven.org/maven2/org/apache/karaf/apache-karaf/2.3.4/apache-karaf-2.3.4.tar.gz
RUN tar xzvf apache-karaf-2.3.4.tar.gz; mv apache-karaf-2.3.4 apache-karaf; rm -f apache-karaf-2.3.4.tar.gz
#RUN chown -R runner apache-karaf
WORKDIR /home/runner/apache-karaf/etc
# lets remove the karaf.name by default so we can default it from env vars
RUN sed -i '/karaf.name=root/d' system.properties
# lets add a user - should ideally come from env vars?
ADD datasource.dev.cfg /home/runner/apache-karaf/etc/datasource.dev.cfg
RUN echo >> users.properties
RUN echo admin=admin,admin >> users.properties
# lets enable logging to standard out
RUN echo log4j.rootLogger=INFO, stdout, osgi:* >> org.ops4j.pax.logging.cfg
WORKDIR /home/runner/apache-karaf
# ensure we have a log file to tail
RUN mkdir -p data/log
RUN echo >> data/log/karaf.log
# add run script
ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf
ADD run /usr/local/bin/run
RUN chmod +x /usr/local/bin/run
# wget nexus tar.gz for package
WORKDIR /tmp
RUN mkdir .m2
RUN wget -q http://xxx:xxx@domain:8091/nexus/content/groups/public/com/shuyun/ccms/ccms-parent-package/6.1.1-SNAPSHOT/ccms-parent-package-6.1
RUN tar xzvf ccms-parent-package-6.1.1-20140903.032400-1.tar.gz
RUN mv ccms-parent-package-6.1.1-SNAPSHOT ccms-parent-package
RUN rm -rf ccms-parent-package-6.1.1-20140903.032400-1.tar.gz
RUN cp -r ccms-parent-package/* /home/runner/apache-karaf/system/
RUN rm -rf ccms-parent-package
expos many ports
EXPOSE 22 8181 8101 1099 2181 9300 61616
#CMD echo "starting Apache-Karaf container: "
CMD ["/usr/bin/supervisord"]
docker build has happend exception:
docker build -t shuyun/karaf-app:2.3.4 .
err
Step 33 : ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf
---> Using cache
---> 37a984c607ea
Step 34 : ADD run /usr/local/bin/run
---> Using cache
---> 452bb5e20ebf
Step 35 : RUN chmod +x /usr/local/bin/run
---> Running in 06d5035a88e1
2014/09/04 04:29:08 exec: "/bin/sh": stat /bin/sh: no such file or directory
With VBox 4.3.8 & Vagrant 1.5.1 on Mavericks - Am running
vagrant init boot2docker https://github.com/mitchellh/boot2docker-vagrant-box/releases/download/v0.5.4-1/boot2docker_virtualbox.box
vagrant up
I get the Kernel Panic error #25, so I run
VBoxManage setextradata blah_default_1395829057913_10574 VBoxInternal/CPUM/EnableHVP 1
which seems to fix it, vagrant up
again gives me:
The guest's platform is currently not supported, will try generic Linux method... Copy iso file /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso boot2docker: 0.5.4 Installing Virtualbox Guest Additions 4.3.8 - guest version is boot2docker: 0.5.4 mkdir: can't create directory '/tmp/selfgz9247220': No such file or directory Cannot create target directory /tmp/selfgz9247220 You should try option --target OtherDirectory An error occurred during installation of VirtualBox Guest Additions 4.3.8. Some functionality may not work as intended. In most cases it is OK that the "Window System drivers" installation failed. boot2docker: 0.5.4 boot2docker: 0.5.4 rm: remove '/tmp/VBoxGuestAdditions.iso'? ==> default: Checking for guest additions in VM... default: No guest additions were detected on the base box for this VM! Guest default: additions are required for forwarded ports, shared folders, host only default: networking, and more. If SSH fails on this machine, please install default: the guest additions and repackage the box to continue. default: default: This is not an error message; everything may continue to work properly, default: in which case you may ignore this message.
When I vagrant ssh
- there is no /vagrant folder available. It seems that Guest Additions aren't installing. Have tried the vbguest plugin, but get the same errors. Any suggestions?
Have also tried building the box, but the virtual box kernel panic error doesn't let the packer script finish the script.
Any chance we can get a new release built?
It would be great to have a public Hyper-V build of the boot2docker Vagrant box. With built-in support for Hyper-V in Vagrant 1.5 and built-in support for Hyper-V in Windows 8.1, it seems like a Hyper-V boot2docker could become the ideal way to launch a Docker container on Windows hosts.
HI,
I have set the DOCKER_HOST, but how can I use docker command in the OSX terminal?
Use boot2docker installer can use docker in the OSX terminal.
Thank you.
OSX terminal console:
Zhaos-MacBook-Pro:ceph-manager-client zhaozhiming$ echo $DOCKER_HOST
tcp://192.168.59.103:2375
Zhaos-MacBook-Pro:ceph-manager-client zhaozhiming$ docker version
-bash: docker: command not found
Zhaos-MacBook-Pro:ceph-manager-client zhaozhiming$ ping 192.168.59.103
PING 192.168.59.103 (192.168.59.103): 56 data bytes
64 bytes from 192.168.59.103: icmp_seq=0 ttl=64 time=0.522 ms
64 bytes from 192.168.59.103: icmp_seq=1 ttl=64 time=2.896 ms
64 bytes from 192.168.59.103: icmp_seq=2 ttl=64 time=0.284 ms
my Vagrant file:
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "boot2docker"
config.vm.network :private_network, ip: "192.168.59.103"
end
According to http://blog.docker.com/2014/10/docker-1-3-signed-images-process-injection-security-options-mac-shared-directories/ this new version mount /Users for OSX, plus exec command and more.
I'm getting this error all of a sudden when running vagrant up
My Vagrantfile:
VAGRANTFILE_API_VERSION = "2"
ENV['VAGRANT_DEFAULT_PROVIDER'] ||= 'docker'
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.ssh.insert_key = false
config.vm.define "db" do |app|
app.vm.provider "docker" do |d|
d.image = "postgres"
d.name = "myapp_db"
d.ports = ['5432:5432']
d.vagrant_vagrantfile = "Vagrantfile.host"
end
end
config.vm.define "redis" do |v|
v.vm.provider "docker" do |d|
d.image = "redis"
d.name = 'myapp_redis'
d.ports = ["6379:6379"]
d.vagrant_vagrantfile = "Vagrantfile.host"
end
end
end
Vagrantfile.host:
Vagrant.configure("2") do |config|
config.ssh.insert_key = false
config.vm.box = "mitchellh/boot2docker"
config.vm.provider "virtualbox" do |v|
v.check_guest_additions = false
v.functional_vboxsf = false
v.customize ['modifyvm', :id, '--memory', 4096]
v.customize ['modifyvm', :id, '--acpi', 'on']
v.customize ['modifyvm', :id, '--cpus', 4]
v.customize ['modifyvm', :id, '--cpuexecutioncap', '100']
v.customize ['modifyvm', :id, '--natdnshostresolver1', 'on']
v.customize ['modifyvm', :id, '--natdnsproxy1', 'on']
end
config.nfs.functional = false
config.vm.network :forwarded_port, guest: 5432, host: 5432
config.vm.network :forwarded_port, guest: 6379, host: 6379
end
Here is the log:
$ vagrant up
Bringing machine 'db' up with 'docker' provider...
Bringing machine 'redis' up with 'docker' provider...
==> db: Removing hosts
==> db: No machine id, nothing removed from /etc/hosts
==> db: Docker host is required. One will be created if necessary...
==> redis: Removing hosts
==> redis: No machine id, nothing removed from /etc/hosts
==> redis: Docker host is required. One will be created if necessary...
db: Vagrant will now create or start a local VM to act as the Docker
db: host. You'll see the output of the `vagrant up` for this VM below.
db:
db: Removing hosts
db: No machine id, nothing removed from /etc/hosts
db: Importing base box 'mitchellh/boot2docker'...
db: Matching MAC address for NAT networking...
db: Checking if box 'mitchellh/boot2docker' is up to date...
db: Setting the name of the VM: myapp_default_1451202150495_66425
db: Clearing any previously set network interfaces...
db: Preparing network interfaces based on configuration...
db: Adapter 1: nat
db: Forwarding ports...
db: 2375 => 2375 (adapter 1)
db: 5432 => 5432 (adapter 1)
db: 6379 => 6379 (adapter 1)
db: 22 => 2222 (adapter 1)
db: Checking for host entries
db: Running 'pre-boot' VM customizations...
db: Booting VM...
db: Waiting for machine to boot. This may take a few minutes...
db: SSH address: 127.0.0.1:2222
db: SSH username: docker
db: SSH auth method: private key
db: Warning: Connection timeout. Retrying...
db: Warning: Authentication failure. Retrying...
db: Machine booted and ready!
No installation found.
The guest's platform ("tinycore") is currently not supported, will try generic Linux method...
Copy iso file /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
Installing Virtualbox Guest Additions 5.0.4 - guest version is unknown
mkdir: can't create directory '/tmp/selfgz7981531': No such file or directory
Cannot create target directory /tmp/selfgz7981531
You should try option --target OtherDirectory
An error occurred during installation of VirtualBox Guest Additions 5.0.4. Some functionality may not work as intended.
In most cases it is OK that the "Window System drivers" installation failed.
redis: Docker host VM is already ready.
==> db: Syncing folders to the host VM...
db: Installing rsync to the VM...
db: Rsyncing folder: /Users/karlingen/myapp/ => /var/lib/docker/docker_1451202177_17507
==> redis: Syncing folders to the host VM...
==> db: Warning: When using a remote Docker host, forwarded ports will NOT be
==> db: immediately available on your machine. They will still be forwarded on
==> db: the remote machine, however, so if you have a way to access the remote
==> db: machine, then you should be able to access those ports there. This is
==> db: not an error, it is only an informational message.
==> db: Creating the container...
db: Name: myapp_db
db: Image: postgres:9.4.1
db: Volume: /var/lib/docker/docker_1451202177_17507:/vagrant
db: Port: 5432:5432
redis: Rsyncing folder: /Users/karlingen/myapp/ => /var/lib/docker/docker_1451202182_3829
==> redis: Warning: When using a remote Docker host, forwarded ports will NOT be
==> redis: immediately available on your machine. They will still be forwarded on
==> redis: the remote machine, however, so if you have a way to access the remote
==> redis: machine, then you should be able to access those ports there. This is
==> redis: not an error, it is only an informational message.
==> redis: Fixed port collision for 22 => 2222. Now on port 2200.
==> redis: Creating the container...
redis: Name: myapp_redis
redis: Image: library/redis
redis: Volume: /var/lib/docker/docker_1451202182_3829:/vagrant
redis: Port: 6379:6379
==> db: An error occurred. The error will be shown after all tasks complete.
==> redis: An error occurred. The error will be shown after all tasks complete.
An error occurred while executing multiple actions in parallel.
Any errors that occurred are shown below.
An error occurred while executing the action on the 'db'
machine. Please handle this error then try again:
A Docker command executed by Vagrant didn't complete successfully!
The command run along with the output from the command is shown
below.
Command: "docker" "run" "--name" "myapp_db" "-d" "-p" "5432:5432" "-v" "/var/lib/docker/docker_1451202177_17507:/vagrant" "postgres:9.4.1"
Stderr: Unable to find image 'postgres:9.4.1' locally
Pulling repository postgres
2015/12/27 07:43:04 Could not reach any registry endpoint
Stdout:
An error occurred while executing the action on the 'redis'
machine. Please handle this error then try again:
A Docker command executed by Vagrant didn't complete successfully!
The command run along with the output from the command is shown
below.
Command: "docker" "run" "--name" "myapp_redis" "-d" "-p" "6379:6379" "-v" "/var/lib/docker/docker_1451202182_3829:/vagrant" "library/redis"
Stderr: Unable to find image 'library/redis' locally
Pulling repository library/redis
2015/12/27 07:43:06 Could not reach any registry endpoint
I tried destroying and rebuilding a couple of times.
Any ideas what this might be?
I'm having some issues getting the box to work.
(Windows 7 running Vagrant 1.5.4 VirtualBox 4.3.10)
It seems the guest additions can not be installed?
vagrant reload
==> default: Attempting graceful shutdown of VM...
==> default: Checking if box 'mitchellh/boot2docker' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 4243 => 4243 (adapter 1)
default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: docker
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
default: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
No installation found.
The guest's platform is currently not supported, will try generic Linux method..
.
Copy iso file C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso into the
box /tmp/VBoxGuestAdditions.iso
boot2docker: 0.8.0
Installing Virtualbox Guest Additions 4.3.10 - guest version is
boot2docker: 0.8.0
mkdir: can't create directory '/tmp/selfgz69713780': No such file or directory
Cannot create target directory /tmp/selfgz69713780
You should try option --target OtherDirectory
An error occurred during installation of VirtualBox Guest Additions 4.3.10. Some
functionality may not work as intended.
In most cases it is OK that the "Window System drivers" installation failed.
boot2docker: 0.8.0
boot2docker: 0.8.0
rm: remove '/tmp/VBoxGuestAdditions.iso'?
My synced folders from the Vagrantfile are not mounted afterwards...
When running vagrant up, I get this error
$ ~/Projects/boot2docker $ vagrant init boot2docker https://github.com/mitchellh/boot2docker-vagrant-box/releases/download/v0.5.4/boot2docker_virtualbox.box
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
$ ~/Projects/boot2docker vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Box 'boot2docker' was not found. Fetching box from specified URL for
the provider 'virtualbox'. Note that if the URL does not have
a box for this provider, you should interrupt Vagrant now and add
the box yourself. Otherwise Vagrant will attempt to download the
full box prior to discovering this error.
Downloading or copying the box...
Extracting box...te: 2816k/s, Estimated time remaining: 0:00:01)
Successfully added box 'boot2docker' with provider 'virtualbox'!
/Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/plugins/providers/virtualbox/config.rb:55:in `customize': wrong number of arguments (2 for 1) (ArgumentError)
from /Users/eric/.vagrant.d/boxes/boot2docker/virtualbox/Vagrantfile:23:in `block (2 levels) in <top (required)>'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/plugins/kernel_v2/config/vm.rb:252:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/plugins/kernel_v2/config/vm.rb:252:in `block (2 levels) in finalize!'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/plugins/kernel_v2/config/vm.rb:251:in `each'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/plugins/kernel_v2/config/vm.rb:251:in `block in finalize!'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/plugins/kernel_v2/config/vm.rb:240:in `each'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/plugins/kernel_v2/config/vm.rb:240:in `finalize!'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/config/v2/root.rb:44:in `block in finalize!'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/config/v2/root.rb:43:in `each'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/config/v2/root.rb:43:in `finalize!'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/config/v2/loader.rb:21:in `finalize'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/config/loader.rb:159:in `load'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/environment.rb:355:in `block in machine'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/environment.rb:389:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/environment.rb:389:in `machine'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/action/builtin/handle_box_url.rb:77:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/action/warden.rb:34:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/action/runner.rb:61:in `block in run'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/util/busy.rb:19:in `busy'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/action/runner.rb:61:in `run'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/action/builtin/call.rb:51:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/action/warden.rb:34:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/action/warden.rb:34:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/action/builder.rb:116:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/action/runner.rb:61:in `block in run'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/util/busy.rb:19:in `busy'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/action/runner.rb:61:in `run'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/machine.rb:147:in `action'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.4/lib/vagrant/batch_action.rb:63:in `block (2 levels) in run'
It looks like it is complaining about this part of the Vagrantfile
...
# Attach the ISO
config.vm.provider "virtualbox" do |v|
v.customize "pre-boot", [
"storageattach", :id,
"--storagectl", "IDE Controller",
"--port", "0",
"--device", "1",
"--type", "dvddrive",
"--medium", File.expand_path("../boot2docker-vagrant.iso", __FILE__)
]
end
...
Any ideas what is going on here?
Related to hashicorp/vagrant#3667
With Docker's script, it's boot2docker stop
— boot2docker download
— boot2docker start
. It says that the VM's hard drive isn't affected. What's the way to do this with Vagrant? Vagrant requires destroying the image in order to change the underlying image, no?
Ref: http://docs.docker.io/installation/mac/#upgrading-to-a-newer-release-of-boot2docker
Hi,
I tried to create a simple VM using $ vagrant init mitchellh/boot2docker
and adding a shared folder, but it hangs during mounting:
$ vagrant up
==> default: Checking if box 'mitchellh/boot2docker' is up to date...
==> default: Verifying vmnet devices are healthy...
==> default: Preparing network adapters...
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Starting the VMware VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 192.168.151.147:22
default: SSH username: docker
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
default: Warning: Authentication failure. Retrying...
==> default: Machine booted and ready!
==> default: Checking for host entries
==> default: Forwarding ports...
default: -- 2375 => 2375
default: -- 22 => 2200
==> default: Configuring network adapters within the VM...
==> default: Exporting NFS shared folders...
==> default: Preparing to edit /etc/exports. Administrator privileges will be required...
Password:
==> default: Mounting NFS shared folders...
The shared folder is defined like this:
config.vm.synced_folder ".", "/vagrant", type: "nfs"
I'm running OS X 10.9.3
with Vagrant 1.6.3
.
Any ideas ?
Thanks,
M.
I've set up a Vagrantfile using the 0.5.4-1 image with nothing else special. On 'vagrant up' it hangs. So I enabled gui mode in my Vagrantfile and ran it. It starts up, though I get the following:
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
There is more output before it, but I haven't figured out how to get that out from the GUI VirtualBox. If someone can let me know hot to do that, i'd be more than happy to provide more output.
I've also looked at the 'vagrant up' hangs wiki but I don't think I have networking here.
Versions:
Vagrant 1.4.3
VirtualBox 4.3.8r92456
boot2docker 0.5.4-1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.