Create UBI-based images for CNG
This MR adds new CNG Docker images that are based on for RHEL UBI. It contains numerous changes. The following comments can help to review them faster:
- A new image, named
gitlab-ubi-build, is added. It contains any build tool and compile-time dependency that is needed for building other images. This image always tagged
latestand you must only use this tag.
- A new Dockerfile, named
Dockerfile.ubi, is added to 17 out of 19 existing images. This Dockerfile contains UBI specific build instructions.
- The images that don't have UBI version are
- At the moment we use UBI8 as the base image. All images accept
UBI_IMAGEas a build argument. By default it is set to use
- These images are added to the build pipeline. They're not built by default. When
UBI_PIPELINECI variable is set to
truethe pipeline builds these images. In this mode the pipeline only builds UBI images.
- In UBI build mode, only EE version of Rails-based images are built (CE images are excluded).
- These images can be only built on
gitlab.com. They are not part of the release process. Hence, they can be only built from feature branches.
- Utility images, such as
git-baseare tagged with their specified version and
-ubiextension. The rest of the images are tagged with the branch name and
- These images extensively use a layering technique which builds binaries in separate images and copies dependencies from other images. For example, when an image requires Ruby or Python it copies it from
gitlab-pythonimage. As a result, the base image of some of the UBI-based images are not the same as their non-UBI counterpart, e.g.
gitlab-gois not the base image for
gitlab-shellor any other image. These images are either based on
- There are a few minor changes to the existing images. These changes are either cosmetic, e.g. directory structure, or applied for the purpose of portability.
For testing you can pull the images: