Upgrading OnTime in a container – addendum

I have been asked to give more details about the .taz file that I mentioned in my previous post.

I hope you have read the excellent posts from Martjin and Daniel, where they explain the structure of the tarball.

In my case it is very simple: create on your machine a domino-bin directory e.g. /home/domino-bin, and put there the ontimegc file.

Then go in the /home directory and issue the command :
tar cvzf OnTime15.taz domino-bin/

The content of the file is this:
# tar -tvf OnTime15.taz
drwxr-xr-x root/root 0 2024-10-10 09:02 domino-bin/
-rwxr-xr-x root/root 57352 2024-10-10 09:02 domino-bin/ontimegc

Place the file in the default directory, usually /local/software, and follow the instructions in my previous post.


Upgrading OnTime in a container

First of all, a big THANK YOU! to my friend and fellow HCL Ambassador Martijn de Jong . If you don’t know him, he’s one of the gurus for Domino containers, together with Daniel Nashed.
Without his invaluable help, my work would not have been possible.

Running Domino in a container is becoming more and more popular in these days. I assume the reader is familiar with the topic, I am not going to explain how to create and run a Domino container. If you want to know more about Domino containers watch the replay of the webinar that Martijn did for OpenNTF and read his presentation

OnTime is included in Domino, starting with Release 14, is a great tool and I encourage my readers to use it, the version included in Domino is free and very powerful.
The issue is that Intravision, creates new releases of OnTime faster that HCL creates new releases of Domino, which is obviously understandable.
For example the OnTime version included in Domino is 11.1, but the most recent is 11.5. Hence if you want to keep updated your environment, you need to upgrade OnTime.

The upgrade of OnTime is so easy that I am tempted to use the word trivial. Unzip the file you downloaded from their site, and expand it on your local PC where you have Notes installed. Open the installer.nsf database and follow the instructions, i.e. select the language and select if is a first install or an upgrade. That’s it.

On Linux there are a couple of extra steps you have to do
1. Copy the OnTime task for Linux, ‘ontimegc’ from the installation files /ExtraFiles/Tasks to the Domino server program directory.
2. Run as owner or root ‘chmod 755 ontimegc’ (-rwxr-xr-x)

That is OK if you run Domino on Linux native, but what if you run Domino in a container ?

Copying the files in the program directory into the container is easy (again, I assume you are familiar with Docker) and it works, but….. if you stop the container and restart it you will lose the update. Because the updated ontimegc file is not in the base image where you created the container from, so restarting the container will bring you back to 11.1.

There are two ways to solve this, thanks Martijn for pointing me in the right direction, and make the updated file always available in the program directory of Domino:

1) Install the latest version of OnTime as a custom addon when building the image

2) A quick and dirty trick using volumes

Install the latest version of OnTime as a custom addon when building the image

When you use Daniel Nashed script build.sh to create the image there is an option to add a custom addon https://github.com/HCL-TECH-SOFTWARE/domino-container/blob/main/docs/reference_build.md
Martjin made a post on his blog to explain how to do this and how to build the necessary tarball.
See also Daniel’s blog post

Once you have the taz file you just run this command:
./build.sh -custom-addon=OnTime15.taz#e13658bd364b55cb31196242100db36501724e728eac00fc43aa2d50e4cc7f61 menu
In this example OnTime15.taz is the name of the file I created and everything after the # is the SHA256 of the file.

As a result your image will now have the latest version of OnTime and when you run the container it will use it. This way even if you stop and restart the container, it will always use that version.

A quick and dirty trick using volumes

Copy the ontimegc file from the zip file to a location on you machine, e.g. /local/ontime/

I assume that you have used Daniel Nashed startscript to run and configure your server.
If this is not the case, then run, clone that repo and use the scripts.
One of the scripts is dominoctl, which is used to start and stop Domino and to get to the console.
If you run

dominoctl cfg

It will open the config file in edit mode

You should fine something like this inside it : CONTAINER_VOLUMES=”-v /local:/local:z” (it may not have the trailing z:, but that’s only for SELINX so is not a problem is is missing)
Change the line to CONTAINER_VOLUMES=”-v /local:/local:z -v /local/ontime/ontimegc:/opt/hcl/notes/lates/linux/ontimegc:z”
This means that Domino will use the ontimegc you copied, i.e. the latest version, rather than the one in the original one, the older version.

Save the file and restart the container.

This second method is quicker and has an advantage. When the next release of OnTime becomes available, you just copy the new ontimegc file in the /local/ontime/ directory then restart the container (obviously you will have to use install.nsf to upgrade the databases, but that is not specific to containers)