The vpp-base builds docker images for VPP.
Table of contents:
List of currently availables versions that are being maintained:
| Image Tag | Packagecloud Repo | Version | Details |
|---|---|---|---|
The complete list of available image tags can be found on DockerHub.
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.
# Pull the image ➢ docker pull ligato/vpp-base # Print the VPP version ➢ docker run --rm ligato/vpp-base cat /vpp/version 20.05-release# 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~b1410To 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-baseTo 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 ./customNOTE: You can put VPP repo into vpp directory at the root of this repo and it will be ignored by git.
The vpp-base images are built continuously by GitHub workflow and published to DockerHub repository ligato/vpp-base.
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-releaseTags 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 releaseligato/vpp-base:master- latest development versionligato/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 releasesligato/vpp-base:YY.MM-rc0.N-gabcdefg- development versionsligato/vpp-base:YY.MM-rcX.N-gabcdefg- release canditate versionsligato/vpp-base:YY.MM.X-N.gd28bac409- stable versions