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

These base builder images help meet the following goals:

  • Use exactly the same version of third-party libraries by all components.
  • 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

These base images do not have any RIC libraries.  RIC project libraries such as RMR, mdclog, asn1 are published to PackageCloud as binary packages (deb or rpm as appropriate) and should be installed during the build process. However PackageCloud does not support Alpine packages (.apk), so Docker images with Alpine binaries are provided as a workaround.

Most base images are pushed to the LF docker "staging" registry nexus3.o-ran-sc.org:10004 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 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):

FROM nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go: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):

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. No RIC libraries are included; i.e., no MDCLOG, RMR, etc. For complete details see:

 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:

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:

 The image coordinates are:

Image bldr-ubuntu16-c-go

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

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

 The image coordinates are:


  • No labels

10 Comments

  1. Chris Lott What if there are more packages needed to run the ci-job for specific project/task?

    1. Then we extend the base image (smile) please let me know what you need.

  2. Unable to build 'bldr-ubuntu18-c-go' from latest clone of "git clone "https://gerrit.o-ran-sc.org/r/it/dev""

    Getting below error:

    (master)# docker build  .

    ...

    github.com/google/uuid (download)
    github.com/spf13/cobra (download)
    The command '/bin/sh -c go version && go get -v github.com/ory/go-acc && go-acc --help' returned a non-zero code: 1


    As an alternative, any repository from where I can download the '

    nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:9-u18.04' docker image?

    1. I found ubuntu 18 docker image under nexus3.o-ran-sc.org:10001/o-ran-sc/bldr-ubuntu-18-c-go:1.9.0

  3. generally use the release registry (port 10002):

    curl -X GET https://nexus3.o-ran-sc.org:10002/v2/o-ran-sc/bldr-ubuntu18-c-go/tags/list 2>/dev/null|jq
    {
    "name": "o-ran-sc/bldr-ubuntu18-c-go",
    "tags": [
    "1.9.0"
    ]
    }

    The role of the registries (and port numbers) is explained here: O-RAN Developer's Guide to CI Resources and Processes at the LF in section "Continuous Integration Network Resources"

    Note we have RIC-676 for the E release as part of which I presume any base image compilation issues will be fixed.

  4. What is the last update for this image?

    1. Not sure to what image you refer by "this image". There' some tentative plans on near-RT RIC to move to Ubuntu 22.04 as base image. Base images are generated via https://gerrit.o-ran-sc.org/r/q/project:it%252Fdev (e.g., see the commit https://gerrit.o-ran-sc.org/r/c/it/dev/+/11160 that generates the image).

  5. Thanks for your quick reply, Well, I just wondering if I used Python 3.12 and the last libraries  and last rmr version, 

    Should I update the below line in my docker file?

    # copy rmr files from builder image in lieu of an Alpine package
    COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr:4.0.5 /usr/local/lib64/librmr* /usr/local/lib64/
    COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr:4.0.5 /usr/local/bin/rmr* /usr/local/bin/

    to 

    COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr:4.6.0 /usr/local/lib64/librmr* /usr/local/lib64/
    COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr:4.0.0 /usr/local/bin/rmr* /usr/local/bin/


  6. Thanks for your quick reply, Well, I just wondering if I used Python 3.12 and the last libraries  and last rmr version, 

    Should I update the below line in my docker file?

    # copy rmr files from builder image in lieu of an Alpine package
    COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr:4.0.5 /usr/local/lib64/librmr* /usr/local/lib64/
    COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr:4.0.5 /usr/local/bin/rmr* /usr/local/bin/

    to 

    COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr:4.6.0 /usr/local/lib64/librmr* /usr/local/lib64/
    COPY --from=nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-alpine3-rmr:4.6.0 /usr/local/bin/rmr* /usr/local/bin/


    1. yes, if you have an alpine-based image, use the latest RMR version via bldr-alpine3-rmr:4.6.0, which includes rmr version 4.9.0. Alternatively you could build RMR from scratch using the same steps as in https://gerrit.o-ran-sc.org/r/gitweb?p=it/dev.git;a=blob;f=bldr-imgs/bldr-alpine3-rmr/Dockerfile