The vagga.yaml has two sections:

  • containers – description of the containers
  • commands – a set of commands defined for the project

There is also additional top-level option:


(default is no limit) Defines minimum version to run the configuration file. If you put:

minimum-vagga: v0.5.0

Into vagga.yaml other users will see the following error:

Please upgrade vagga to at least "v0.5.0"

This is definitely optional, but useful if you start using new features, and want to communicate the version number to a team. Versions from testing work as well. To see your current version use:

$ vagga --version


Example of one container defined:

    - !Ubuntu xenial
    - !Install [python3-sphinx, make]

The YAML above defines a container named sphinx, which is built with two steps: download and unpack ubuntu xenial base image, and install packages name python-sphinx, make inside the container.


Example of command defined:

  build-docs: !Command
    description: Build vagga documentation using sphinx
    container: sphinx
    work-dir: docs
    run: [make]

The YAML above defines a command named build-docs, which is run in container named sphinx, that is run in docs/ sub dir of project, and will run command make in container. So running:

$ vagga build-docs html

Builds html docs using sphinx inside a container.

See commands for comprehensive description of how to define commands.