Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

This page lists the available Docker images that have been preconfigured with third-party build tools and libraries such as C and Golang compilers, autoconf, make, go, etc.  Image configuration is maintained by files in the "ci-managementit/dev" Gerrit repository: https://gerrit.o-ran-sc.org/r/gitweb?p=ci-managementit/dev.git;a=tree;f=dockerbldr-imgs 

These base builder images help meet the following goals:

  • Use exactly the same version of third-party libraries by all components. Initially the most important third-party library is NNG.
  • Reduce Jenkins build time by avoiding repeats of third-party package installs. Remember that a verify build is performed for every change published to https://gerrit.o-ran-sc.org

The These base images do not have any RIC libraries or software preinstalled because I expect them to change rapidly.  RIC project libraries RMrsuch as RMR, mdclog, asn1 should be are published to PackageCloud as binary packages (deb or rpm as appropriate) and should be installed during the build process. The packaging as DEB and RPM is done for RMr.However PackageCloud does not support Alpine packages (.apk), so Docker images with Alpine binaries are provided as a workaround.

Most base images are pushed These images are published to the LF docker "staging" registry nexus3.o-ran-sc.org:10004 , and eventually may be published and refreshed weekly. This registry allows regular pushes (overwrites) so that the RIC base images keep up with changes in their respective base images. Some images are pushed to the LF docker "release" registry nexus3.o-ran-sc.org:10002.  Browse the available images here:  O-RAN-SC Nexus Registry 

But note THE IMAGE TAGS CHANGE FREQUENTLY as the contents are extended with new packages and versions. If your build stops working, use the link below to find the latest tag and switch to that. If your team depends on these images, please add yourself as a watcher to this page by clicking on the WATCHING link at the top/right!

Projects can use these build images in a Dockerfile ("FROM" command in the docker build process). For example, to use the Ubuntu 18 base image (see below for the current tag):

Code Block
FROM nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntuubuntu18-c-go:1-u16.04-nng1.1.1 AS project-build

...

TAG AS project-build

Projects can use library images in a Dockerfile "COPY" command in the docker build process. For example, to copy a file from an Alpine library image (see below for the current tag):

Code Block
COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-mdclog:TAG /usr/local/lib/libmdc* /usr/local/lib/

Builder Images

These images have many build tools and are appropriate for compiling C and Golang software with a minimal startup cost.

Image bldr-alpine3

This provides an Alpine v3.11 base with C, C++, Golang 1.13.4 and Python 3.7.x and NNG version 1.1.1. No RIC libraries are included; i.e., no MDCLOG, RMR, etc. For complete details see the :

...

...

...

 The image coordinates are:

Image bldr-ubuntu18-c-go

This provides an Ubuntu 18.04 base with C, C++, Golang 1.12.17, 1.13.12 and 1.14.4; go-acc and sonar-scanner-cli. No RIC libraries are included; i.e., no MDCLOG, RMR, etc.. For complete details see:

 The image coordinates are:

Alpine Library Distribution Images

These images provide header files and shared-object libraries for Alpine. These exist purely as workarounds for missing APK support at PackageCloud.io.  These images provide no build tools.  Also, unlike the builder images described above, these images are in the Nexus3 release registry (not the staging registry).

Image bldr-alpine3-mdclog

This provides MDCLog header files and shared-object libraries for Alpine. For complete details see:

Available versions:

  • Tag 1-py3.7-nng1.1.1

Image bldr-debian-python

...

...

...

Docker build files can install the shared object file from this image with this command:

    COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-mdclog:TAG /usr/local/lib/libmdclog.so /usr/local/lib/libmdclog.so

The image coordinates are:

Image bldr-alpine3-rmr

These images provides RMR header files and shared-object libraries for Alpine. An image exists for (most of) the released versions of this library. For complete details see:

Docker build files can install header files from this image with this command:

    COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr:TAG /usr/local/include/rmr /usr/local/include/rmr/

Docker build files can install the shared object file from this image with this command:

    COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr:TAG /usr/local/lib64/librmr_si.so /usr/local/lib64/librmr_si.so

The image coordinates are:

  • Repository: nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr
  • Tags: 4.1.2, 4.0.5, 4.0.2, 4.0.0, 3.8.2, 3.8.0

Deprecated Images

The following images may still be available in the Nexus registry but are no longer recommended for use.

Image bldr-alpine3-go

Deprecated: Teams that need Alpine should use the bldr-alpine3 image. Teams that need RMR should pull that library from a bldr-alpine3-rmr image.

This provides an Alpine v3.11 base with Golang 1.13.8; also the NNG and RMR v3 (SI95) libraries. As of 10 April 2020 the NNG library is no longer included. For complete details see:

Available versions:

  • Tag 2-py3.7-nng1.1.1

Image bldr-ubuntu16-c-go

...

...

...

...

...

 The image coordinates are:

Available versions:

  • Tag 1-u16.04-nng1.1.1

Image bldr-

...

ubuntu16-c-go

Deprecated: Teams that need Ubuntu should use the 18.04 version, see below. 

This provides an Ubuntu 1816.04 base with C, C++, Golang 1.12.0 and NNG version 1.1.1. For complete details see the :

...

...

 The image coordinates are:

...

Available versions:

  • Tag 1-u18.04-nng1.1.1