This functionality is experimental. Some details can change in future.
New in version 0.7.1.
It’s generally not recommended to use CapsuleCommand, unless you know what are you doing.
This kind of command doesn’t require container to be built. It operates in intermediate container that we call capsule. Capsule is a container that provides same level of isolation as normal container but has neither config nor version, on the other hand it provides tools to build create and start other containers.
This feature is both: more powerful, as it provides a way to build/run
different containers based on dynamic parameters and even change
vagga.yaml. On the other hand it starts with bare shell, and it’s your job
to bootstrap needed utilities and do all process supervision.
All the tools officially supported by vagga in capsule are prefixed with
vagga _capsule, namely:
vagga _capsule build <container_name>– builds container, similar to
vagga _build <container_name>
vagga _capsule run <container> <cmd>– runs command in a container. Container will be (re)built if required.
vagga _capsule script <url>– fetches a script from the url, caches it and runs from cache
vagga _capsule download <url>– fetches a file from the url and caches printing file path to stdout
There are few limitations of the capsule:
- All containers must have same uid/gid maps (which is often the case)
vagga _cleandoesn’t work in capsule yet
- Volume init commands do not work
- Supervise commands can’t be run in capsule (actually any commands configured
in yaml can’t be run from the inside capsule, but most of them can be
vagga _capsule run)