Skip to content

Instantly share code, notes, and snippets.

@BenPhegan
Created March 18, 2014 11:33
Show Gist options
  • Save BenPhegan/9618333 to your computer and use it in GitHub Desktop.
Save BenPhegan/9618333 to your computer and use it in GitHub Desktop.
Docker Cache Hack (sort of)
Vagrant.configure(2) do |config|
config.vm.box = "parallels/ubuntu-12.04"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 6379, host: 6380
# config.vm.network "public_network"
config.vm.network "private_network", ip: "192.168.2.123"
# Install docker using provisioner
config.vm.provision "docker"
# Check if we have a local tar of the image we want, if so load it into docker
config.vm.provision "shell", inline: "[ -n '$(docker images -q dockerfile/redis)' ] || [ -f /vagrant/dockerfile/redis.tar ] && docker load < /vagrant/dockerfile/redis.tar"
# Use the provisioner to run it...
config.vm.provision "docker" do |d|
d.run "redis",
image: "dockerfile/redis",
cmd: "--dir /var/redis",
args: "-v '/vagrant/redis:/var/redis' -p 6379:6379"
end
# Check if we have an output location...we could flatten the file system and remove this command...
config.vm.provision "shell", inline: "[ -d /vagrant/dockerfile ] || mkdir /vagrant/dockerfile"
# Finally, if we dont have a copy of the tar already (ie first provision) then we download it to the vagrant share ready for next provision...
config.vm.provision "shell", inline: "[ -f /vagrant/dockerfile/redis.tar ] || docker save dockerfile/redis > /vagrant/dockerfile/redis.tar"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment