A Vagrant plugin that helps you reduce the amount of coffee you drink while waiting for boxes to be provisioned by sharing a common package cache among similar VM instances. Kinda like vagrant-apt_cache or this magical snippet but targeting multiple package managers and Linux distros.
This project is looking for maintainers, please see GH-143 for more.
Make sure you have Vagrant 1.4+ and run:
vagrant plugin install vagrant-cachier
Vagrant.configure("2") do |config|
config.vm.box = 'your-box'
if Vagrant.has_plugin?("vagrant-cachier")
# Configure cached packages to be shared between instances of the same base box.
# More info on http://fgrehm.viewdocs.io/vagrant-cachier/usage
config.cache.scope = :box
# OPTIONAL: If you are using VirtualBox, you might want to use that to enable
# NFS for shared folders. This is also very useful for vagrant-libvirt if you
# want bi-directional sync
config.cache.synced_folder_opts = {
type: :nfs,
# The nolock option can be useful for an NFSv3 client that wants to avoid the
# NLM sideband protocol. Without this option, apt-get might hang if it tries
# to lock files needed for /var/cache/* operations. All of this can be avoided
# by using NFSv4 everywhere. Please note that the tcp option is not the default.
mount_options: ['rw', 'vers=3', 'tcp', 'nolock']
}
# For more information please check http://docs.vagrantup.com/v2/synced-folders/basic_usage.html
end
end
For more information please read the documentation available at http://fgrehm.viewdocs.io/vagrant-cachier.
- Vagrant's built in VirtualBox and Docker providers
- vagrant-lxc
- VMware providers with NFS enabled (See GH-24 for more info)
- vagrant-libvirt
- vagrant-kvm
- Let us know if it is compatible with other providers!
Please note that as of v0.6.0 the plugin will automatically disable any previously defined configs for cloud providers
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request