ligato/vpp-base

By ligato

Updated about 12 hours ago

Base image with installed VPP

Image
Networking
Integration & delivery
7

1M+

ligato/vpp-base repository overview

vpp-base

Workflow Latest Version Docker Pulls

The vpp-base builds docker images for VPP.


Table of contents:

Available Versions

List of currently availables versions that are being maintained:

Image TagPackagecloud RepoVersionDetails
mastermastermastersize
latestreleasemastersize
21.062006mastersize
21.012001mastersize
20.092009mastersize
20.052005mastersize

The complete list of available image tags can be found on DockerHub.

Intro

The purpose of vpp-base is to provide tools for building docker images with any version of VPP.

Use cases:

  • Use as a base image in your Dockerfiles
  • Quickly test something specific VPP version
  • Build docker image for custom VPP builds
  • Generate VPP binary API bindings
  • Distribute Debian packages for VPP

The project was created because there are no official docker images provided by the FD.io community.

Quickstart

Use latest release of VPP
# Pull the image
➢ docker pull ligato/vpp-base

# Print the VPP version
➢ docker run --rm ligato/vpp-base cat /vpp/version
20.05-release
Use development version of VPP
# Pull the image
➢ docker pull ligato/vpp-base:master

# Print the VPP version
➢ docker run --rm ligato/vpp-base:master cat /vpp/version
20.09-rc0~157-g8eca60df7~b1410

Build Image

Build with official VPP version

To build vpp-base image you can simply use docker build command (no need to clone this repository at all):

# Build with latest VPP release
➢ docker build github.com/ligato/vpp-base

# Build with stable VPP 20.05
➢ docker build --build-arg REPO='2005' github.com/ligato/vpp-base

# Build with exact VPP version
➢ docker build --build-arg REPO='master' --build-arg VPP_VERSION='20.09-rc0~174-gbfeae8c57' github.com/ligato/vpp-base

# Build with specific VPP commit
➢ docker build --build-arg REPO='master' --build-arg VPP_VERSION='20.09-rc0~[^ ]*-g<commit>' github.com/ligato/vpp-base
Build with custom VPP version

To build vpp-base with custom VPP you can use the custom which installs from local debian packages by adding .deb packages from custom directory and installing them.

# build VPP
(
  cd vpp
  make install-dep install-ext-deps
  make pkg-deb
)

# copy debian packages from build-root
cp ./vpp/build-root/*.deb ./custom/

# build custom vpp-base image
docker build --tag vpp-base:custom ./custom

NOTE: You can put VPP repo into vpp directory at the root of this repo and it will be ignored by git.

Images

The vpp-base images are built continuously by GitHub workflow and published to DockerHub repository ligato/vpp-base.

Image Contents

The vpp-base image contains the following pieces:

  • Installed VPP ready for use with default config - /etc/vpp/startup.conf
  • Download script for getting VPP packages - /get-vpp.sh
  • Debian packages that come with VPP - /vpp/*.deb
  • Version file that contains VPP version - /vpp/version
# List files in /vpp/ directory
➤ docker run --rm ligato/vpp-base:latest ls -Sgh
total 11M
-rw-r--r-- 1 root 3.4M Jan 29 23:02 vpp_20.01-release_amd64.deb
-rw-r--r-- 1 root 3.1M Jan 29 23:02 vpp-plugin-dpdk_20.01-release_amd64.deb
-rw-r--r-- 1 root 3.0M Jan 29 23:02 vpp-plugin-core_20.01-release_amd64.deb
-rw-r--r-- 1 root 941K Jan 29 23:02 vpp-dev_20.01-release_amd64.deb
-rw-r--r-- 1 root 166K Jan 29 23:02 libvppinfra_20.01-release_amd64.deb
-rw-r--r-- 1 root 132K Jan 29 23:02 libvppinfra-dev_20.01-release_amd64.deb
-rw-r--r-- 1 root  24K Jan 29 23:02 python3-vpp-api_20.01-release_amd64.deb
-rw-r--r-- 1 root  24K Jan 29 23:02 vpp-api-python_20.01-release_amd64.deb
-rw-r--r-- 1 root   14 Feb  7 10:14 version

# Print installed VPP packages
➤ docker run --rm -i ligato/vpp-base dpkg-query -W '*vpp*'
libvppinfra	20.01-release
libvppinfra-dev	20.01-release
python3-vpp-api	20.01-release
vpp	20.01-release
vpp-api-python	20.01-release
vpp-dbg	20.01-release
vpp-dev	20.01-release
vpp-plugin-core	20.01-release
vpp-plugin-dpdk	20.01-release
Tag Format

Tags are derived from particular VPP version installed in the image. However they are some differences between image tag and particular VPP version:

  • character ~ is replaced with dot . (not allowed in docker image tags)
  • build number suffix (~bXXXX) is omitted in tags

Periodically updated images have fixed tags:

  • ligato/vpp-base:latest - latest official release
  • ligato/vpp-base:master - latest development version
  • ligato/vpp-base:YY.MM - latest stable versions

All the published images are also tagged using their particular version:

  • ligato/vpp-base:YY.MM-release - official releases
  • ligato/vpp-base:YY.MM-rc0.N-gabcdefg - development versions
  • ligato/vpp-base:YY.MM-rcX.N-gabcdefg - release canditate versions
  • ligato/vpp-base:YY.MM.X-N.gd28bac409 - stable versions

Tag summary

Content type

Image

Digest

sha256:24fd1edbb

Size

178.5 MB

Last updated

about 12 hours ago

docker pull ligato/vpp-base