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~b1410
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
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.
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-release
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 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