docs: How does it work?
This commit is contained in:
parent
eb544ae773
commit
94de55a241
1 changed files with 32 additions and 0 deletions
32
docs/how-does-it-work.md
Normal file
32
docs/how-does-it-work.md
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
## How does it work?
|
||||||
|
|
||||||
|
On vagrant-cachier's _"jargon"_, cached packages are kept in _cache buckets_.
|
||||||
|
Those _buckets_ are basically directories that are shared between the host machine
|
||||||
|
and VMs that are kept around between `vagrant destroy`s. Each _bucket_ (or synced
|
||||||
|
folder if you prefer) is meant to cache specific types of packages, like [apt](buckets/apt)'s
|
||||||
|
`.deb`s or [RubyGems](buckets/rubygems) `.gem`s. Please have a look at the
|
||||||
|
"Available Buckets" menu above for more information on each bucket.
|
||||||
|
|
||||||
|
Regarding configurations, right now the plugin does not make any assumptions for
|
||||||
|
you and you have to configure things properly from your `Vagrantfile`. In other
|
||||||
|
words, _the plugin is disabled by default_.
|
||||||
|
|
||||||
|
Cache buckets will always be available from `/tmp/vagrant-cachier` on your guest and
|
||||||
|
the appropriate folders will get symlinked to the right path _after_ the machine is
|
||||||
|
up but _right before_ it gets provisioned. We _could_ potentially do it on one go
|
||||||
|
and share bucket's folders directly to the right path if we were only using VirtualBox
|
||||||
|
because it shares folders _after_ booting the machine but the LXC provider does that
|
||||||
|
_as part of_ the boot process (synced folders are actually `lxc-start` parameters)
|
||||||
|
and as of now we are not able to get some information that this plugin requires
|
||||||
|
about the guest machine / container before it is actually up and running.
|
||||||
|
|
||||||
|
Under the hood, the plugin will monkey patch `Vagrant::Builtin::Provision` and
|
||||||
|
will set things up for each configured cache bucket _before and after_ running each
|
||||||
|
defined provisioner. Before halting the machine, it will also revert the changes
|
||||||
|
required to set things up by hooking into calls to `Vagrant::Builtin::GracefulHalt`
|
||||||
|
so that you can repackage the machine for others to use without requiring users to
|
||||||
|
install the plugin as well.
|
||||||
|
|
||||||
|
Please keep in mind that this plugin won't do magic, if you are compiling things
|
||||||
|
during provisioning or manually downloading packages outside of a bucket you
|
||||||
|
won't see that much of improvement.
|
Loading…
Reference in a new issue