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:
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/.
The build-script has a couple of new tags:
|-tag||Gives 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|
|-push||Similar 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|
|-capi||A new integration! Installs the C API package on the Domino server, for some C API programming|
|-nolinuxupd||Even 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|
|centos8||CentOS Stream 8 (default)|
|centos9||CentOS Stream 9|
|oracle||Oracle Linux 8|
|ubi / ubi8||Red Hat Universal Base Image 8|
|ubi9||Red Hat UBI 9|
|leap15.3||Suse Leap 15.3|
|leap15.4||Suse Leap 15.4|
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.
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.