Base image with installed VPP
1M+
The vpp-base builds docker images for VPP.
Table of contents:
List of currently availables versions that are being maintained:
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:
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:
/etc/vpp/startup.conf/get-vpp.sh/vpp/*.deb/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:
~ is replaced with dot . (not allowed in docker image tags)~bXXXX) is omitted in tagsPeriodically updated images have fixed tags:
ligato/vpp-base:latest - latest official releaseligato/vpp-base:master - latest development versionligato/vpp-base:YY.MM - latest stable versionsAll 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 versionsContent type
Image
Digest
sha256:24fd1edbb…
Size
178.5 MB
Last updated
about 12 hours ago
docker pull ligato/vpp-base