Coder Social home page Coder Social logo

luis-sousa-pinto / vpp-base Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ligato/vpp-base

0.0 0.0 0.0 113 KB

:whale: Docker images with installed VPP ready to run.

Home Page: https://hub.docker.com/r/ligato/vpp-base

Shell 67.56% Makefile 15.27% Dockerfile 17.17%

vpp-base's Introduction

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 Tag Packagecloud Repo Version Details
master master version size
latest release version size
23.06 2306 version size
23.02 2302 version size
22.10 2210 version size
22.06 2206 version size

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

vpp-base's People

Contributors

ondrej-fabry avatar giluerre avatar juliusmilan avatar ondrajz avatar samuel-dudik avatar pemoticak avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.