Title: Getting Started
Description: Install Vib 1.1 and build a container image from a recipe.
PublicationDate: 2026-08-24
Listed: true
Authors:
- mirkobrombin
- kbdharun
- surinameclubcard
- NN708
Tags:
- getting-started
Vib generates container images from YAML recipes. A recipe defines image stages
and the modules that configure each stage.
Requirements
Vib runs on a glibc-based Linux distribution. Install Docker or Podman only if
you want Vib to build the generated Containerfile for you.
Install Vib
Download the binary for your architecture from the
Vib releases page. For AMD64:
wget https://github.com/Vanilla-OS/Vib/releases/latest/download/vib-amd64
chmod +x vib-amd64
mkdir -p ~/.local/bin
mv vib-amd64 ~/.local/bin/vib
Download the matching plugin archive and install it globally:
wget https://github.com/Vanilla-OS/Vib/releases/latest/download/plugins-amd64.tar.gz
sudo mkdir -p /usr/share/vib/plugins
sudo tar -xvf plugins-amd64.tar.gz -C /usr/share/vib/plugins --strip-components=2
Use the arm64 assets on an AArch64 system. Project-specific plugins can be
placed in a plugins directory beside the recipe instead.
Create a recipe
Create recipe.yml:
name: My Node Image
id: my-node-image
vibversion: 1.1.0
stages:
- id: build
base: node:current-slim
labels:
maintainer: My Team
expose:
"3000": "tcp"
entrypoint:
exec:
- node
- /app/app.js
modules:
- name: build-app
type: shell
sources:
- type: git
url: https://github.com/mirkobrombin/node-sample
branch: main
commands:
- mv /sources/build-app/node-sample /app
- cd /app
- npm install
- npm run build
Vib 1.1 mounts module sources under /sources/MODULE_NAME while generating the
corresponding build step.
Validate and build
Check that Vib can load the recipe, then generate a Containerfile:
vib test recipe.yml
vib build recipe.yml
Choose a different output name with --output, or -o:
vib build --output Containerfile.reunion recipe.yml
Generate the Containerfile and build the image in one command:
vib compile --runtime docker recipe.yml
Docker and Podman are supported. If --runtime is omitted, Vib uses Docker
when available, then Podman. On Vanilla OS, run vib compile inside
host-shell so it can access the host container engine.