Universal Base Images (UBI): Images, repositories, packages, and source code

Updated -

Using Red Hat Universal Base Images (UBI) offers a way to build your container images on a foundation of Red Hat Enterprise Linux software. See Using Red Hat Universal Base Images for details on using Red Hat UBI container images.

This article identifies:

  • Images: Information on how to find available Red Hat UBI container images
  • Repositories: Available software repositories for updating and adding to UBI container images with RPM packages that can be freely redistributed
  • RPM packages: Descriptions of how to find all the packages in and available to UBI container images
  • Source code images: Descriptions of how to get source container images for each published UBI container image

If you have problems or enhancement requests for UBI, enter a bug at the Red Hat Bugzilla site (under the distribution BZ component and UBI7 or UBI8). See the UBI Weekly bug list for the current set of bugs. Red Hat customers can enter a Red Hat Support Case.

NOTE: Although we make a best effort to keep this article up to date, the only true way to obtain the latest list of Red Hat UBI images, repositories, and RPM packages is to check the source of that information directly. Each section below describes how to obtain that information.

Red Hat UBI Images

For the latest list of images and details about each image, refer to the Red Hat Universal Base Image section of the Red Hat Ecosystem Catalog. Red Hat UBI images are available from both authenticated (registry.redhat.io) and unauthenticated (registry.access.redhat.com) registries.

Red Hat UBI Repositories

Each Red Hat UBI image is pre-configured to point to UBI yum repositories that contain the latest versions of UBI RPM packages.
No subscription is needed to update Red Hat UBI images from packages in those repositories.

The /etc/yum.repos.d/ubi.repo file inside each UBI container contains entries for available UBI repositories.
Those set to enabled = 1 are currently enabled. Refer to the baseurl for each repository to see the location of those packages. Type yum repolist to see the list of enabled repositories (yum is not available in the minimal UBI images).

The following Red Hat UBI repositories are enabled by default within RHEL 7 and RHEL 8 UBI images.

RHEL 7 UBI repositories

repo id repo name
ubi-7/x86_64 Red Hat Universal Base Image 7 Server (RPMs)
ubi-7-rhah/x86_64 Red Hat Universal Base Image Atomic Host (RPMs)
ubi-7-server-devtools-rpms/x86_64 Red Hat Developer Tools RPMs for Red Hat Universal Base Image 7 Server
ubi-7-server-extras-rpms/x86_64 Red Hat Universal Base Image 7 Server - Extras (RPMs)
ubi-7-server-optional-rpms/x86_64 Red Hat Universal Base Image 7 Server - Optional (RPMs)
ubi-server-rhscl-7-rpms/x86_64 Red Hat Software Collections RPMs for Red Hat Universal Base Image 7 Server

RHEL 8 UBI repositories

repo id repo name
ubi-8-appstream Red Hat Universal Base Image 8 (RPMs) - AppStream
ubi-8-baseos Red Hat Universal Base Image 8 (RPMs) - BaseOS

Red Hat UBI RPM packages

To see a list of RPM packages installed inside a Red Hat UBI container, type: rpm -qa

To see all available RPM packages from inside a Red Hat UBI container, type: yum list all
Note that the yum command is not available in the minimal images.

Another way to find the RPM packages available to all UBI images is to browse the UBI repositories. As noted earlier, all UBI repositories are listed in the /etc/yum.repos.d/ubi.repo file within each UBI container.

The URL to each repository is listed with the repository name.. Replace $basearch with your computer's architecture, such as x86_64, as shown in the examples:

Red Hat UBI Source Container Images

Red Hat now produces source container images, containing all source code associated with each Universal Base Image (UBI) that it publishes. To read about UBI source container images and how to obtain them, refer to Getting UBI Container Image Source Code.

16 Comments

The rhel8/ namespace seem out-of-scope for this article since they're not UBI images, despite being built on UBI.

We removed the rhel8/ namespace, as you suggested.

The documentation at https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/building_running_and_managing_containers/index/#get_ubi_images also lists images in the rhel8/ namespace. I guess that's a documentation error too then. Can you resolve that?

We fixed it according to your suggestions.

The packages "rpm-build" or "subversion" cannot be installed in the UBI-8 images. Is there a way to install them?

# yum install -y subversion
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Red Hat Universal Base Image 8 (RPMs) - AppStream                                                                                                                                                             370 kB/s | 1.9 MB     00:05
Red Hat Universal Base Image 8 (RPMs) - BaseOS                                                                                                                                                                143 kB/s | 745 kB     00:05
Last metadata expiration check: 0:00:01 ago on Mon Sep  2 20:41:05 2019.
No match for argument: subversion
Error: Unable to find a match

I believe that Adding Software Inside a UBI Container describes what you are looking for. By default, UBI images are only configured to access a subset of the total set of RHEL packages. That document describes how to add other repos to gain access to more packages.

How do I use a recent developer toolset with UBI 7? I.e. can I build code for UBI 7 with a newer gcc than 4.8.5?

Please add Swig to AppStream , it is in Centos Appstream http://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/swig-3.0.12-18.module_el8.0.0+8+90b9a8be.x86_64.rpm , where is it in RHEL8 repos certainly not available in the 3 available repos.

Using the UBI8 container this fails

RUN dnf install --enablerepo=ubi-8-codeready-builder swig -y

Workaround

RUN dnf install http://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/swig-3.0.12-18.module_el8.0.0+8+90b9a8be.x86_64.rpm

Swig is required for M2Crypto python pip compile amongst other things

Hi Stuart, please see the Universal Base Images FAQ, under "How to request new features in UBI?" for instructions on how to file UBI requests.

i m facing the issue that openssl-libs-1.1.1c-2.el8_1.1.x86_64 is installed on ubi8-minimal image but when i want to install openssl from ubi8 repo then i getting an error because release 2.el8_1.1 is not there. i find this release only in the rhel 8 base os repo. i m facing such issues very often in the past two or three times with the package systemd and systemd-libs therefore i perform downgrade for systemd and systemd-libs. Can you please take care that your repos are in sync and the same versions are in all related repos?

Expecting the same issue.

I am trying to install fsevents package using yarn on my nodeJS UBI8 image, it fails.someone already faced this?

"Unsupported platform for fsevents@1.2.11: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})"

Hello,

I did not see any image for s390 platform (IBM Z). Will Redhat make it available ? Also, can this document be updated?

Thank you

Information about the UBI8 for s390x container image can be see at https://catalog.redhat.com/software/containers/detail/5c647760bed8bd28d0e38f9f?architecture=s390x

Hello,

Question about those who code in ansible and want to test their code with molecule.

While Ubi is nice to provide a product on container, this is not possible to reproduce a real RHEL system to write and test integration code on it (repositories name different, tooling different, not all packages available).

What are the best options ?

-deleted-