Domino containers revisited

As I wrote in my last post about the Engage conference, a lot has happened in the Domino container space since I wrote my articles, as Daniel Nashed did some serious refactoring on all scripts, removing an insane amount of old code lines and adding some new functionality. This article will show the changes to the project compared to the time that I wrote the original 6-part series.

New Github repositories

Previously, all code was kept in a github repository which was still under the IBM flag. It was therefore about time, this repository was moved to a new repository under HCL flag. In this new repository we say goodbye to the brand Domino Docker as Docker is just one possible engine to run Domino containers. Instead we, from now on, talk about the Domino container project. The new repository can be found at:
https://github.com/HCL-TECH-SOFTWARE/domino-container

Next to this change, the project was also split between 2 repositories, as Daniel did a lot of work on his start/stop scripts that’s not related to Domino as a container. Even though the Domino container project contains a version of Daniels start/stop script, there’s no sync with the new repository, so it might be an older version. It’s therefore best to grab the scripts from their own repository, which is a personal GitHub repository of Daniel Nashed: https://nashcom.github.io/domino-startscript/.

New tags

The build-script has a couple of new tags:

-tagGives you the possibility to add an extra tag to your image. Despite what the name suggest, you should not just add the tag, but also the repository name, so e.g. local/hclcom/domino:beta12
-pushSimilar to the -tag option, but if you enter a Docker registry as repository, it will immediately do the upload, e.g. -push=mydockerregistry:5000/hclcom/domino:latest
-capiA new integration! Installs the C API package on the Domino server, for some C API programming
-nolinuxupdEven if LinuxYumUpdate=yes is set in the build.cfg, Linux will not be updated with this option. Useful when you build packages on top of a just created container image

Newly supported base distributions

The base OS for the images is still Centos 8 Stream, unless you select a different OS, but there are short forms for a couple of OS-ses, which were all tested and found to be working. This is the complete list.

-from=Uses as base image
centos8CentOS Stream 8 (default)
centos9CentOS Stream 9
rocky Rocky Linux
almaAlma Linux
amazonAmazon Linux
oracleOracle Linux 8
photonPhoton OS
ubi / ubi8Red Hat Universal Base Image 8
ubi9Red Hat UBI 9
leapSuse Leap
leap15.3Suse Leap 15.3
leap15.4Suse Leap 15.4
astraAstra Linux
List of tested base images for Domino and their shortcuts

Another change that Daniel made is the option to build a SafeLinx container instead of a Domino container, but that’s a subject for another blog post.

Documentation

Many developers hate writing documentation, as it takes time away from the fun stuff. Documenting your project also helps you to look at your code from a user’s perspective though. Daniel has put a lot of effort in the past months in creating quite extensive documentation for both the domino-container project and his start/stop scripts for Domino on Linux and AIX. The documentation for the Domino container project can be found here, while the documentation for the start/stop scripts can be found here.