Domino on Linux/Unix, Troubleshooting, Best Practices, Tips and more ...

alt

Daniel Nashed

Introducing Domino Container Script for Podman an Docker

Daniel Nashed – 17 January 2021 16:31:08

This is a brand new script, which is the logical extension to the Nash!Com Domino Start script.
A while ago I introduced Docker support for the start script inside the Domino container.
It comes with an entry-point script we are also leveraging in out Domino Docker Github community script.

This new script is intended to manage and run your Docker and Podman containers.
It includes also a systemd script to run a Domino server on Podman in production using the new systemd options introduced in Podman 1.7+.
Beside that it includes a simple framework to build and manage your own add-on images


Components & functionality

- Predefined systemd script for running a Domino server on Podman 1.7+
- Support for Docker 18+
- sysconfig script to configure your container
- Environment file to configure the server inside the container
- domino_container script as your single point of service for all type of operations
- Build environment for custom images on top of the HCL Domino image or 3rd party images like your Domino on Docker project

It will allow to manage your server from the domino_container script including jumping into the container from command-line.
And you can also leverage it to update your container even running with systemd on Podman.

I moved one of my production servers to a new provider and decided to use Podman with this systemd scripts.
But also when using Docker this script allows you to completely manage your server.


This will replace the management script in the Docker project over time.
The script is more flexible and also provides a simplified way to build add-on image.


build_image directory
With the new approach each image has it's own directory including a Container file (Podman uses this name instead of Dockerfile) and a build.cfg.
You can clone this directory and define your own add-on images which you can build from the directory using the domino_container script.
The build logic is in the script and the install logic for the image is in the install_dir.

The out of the box example is already prepared to install server-tasks and extension managers. It can be used as a template and be customized and extended for any type of customer or partner image.

Installation
Like the start script, the container_script has it's own install script (install_domino_container), which writes the files to the right directories.
Once you installed it, you can run "domino_container" with all the options specified below.
I hope this provides a quick overview and is what you need to run your Domino servers on Docker & Podman.

Any feedback is welcome. It's a first version...
-- Daniel

Current commands

domino_container help
(Using config file /etc/sysconfig/domino_container)

Nash!Com Container Script Version 1.0.0
(Running on Podman Version 2.0.5)

Usage: domino_container

       start | stop | restart | status | statusd | inspect | console | config | env
       domino | bash | update | attach | remove | removeimage | cleanup | port
       install | load | build | version | help

start [live]    start an existing container (the 'live' option shows start script output)
stop  [live]    stops container (the 'live' option shows start script output)
restart         restarts or starts the server
status          shows container status (running, exited, notexisting)
statusd         shows the systemd status
info            shows status and basic information about container and image
inspect         shows detailed information about container and image
console         open Domino console inside container
logs            shows container logs (output from entry point script/start script)
attach          attach to entry point script
domino          pass a command to start script (e.g. domino nsd)
bash [root]     invokes a bash in the running container. optionally run as root instead of notes user
remove|rm       removes the container (if not running)
removeimage|rmi removes the current container (you have to remove the container first)
config|cfg      edit configuration
update          updates the container if referenced image has changed (stops Domino, stops the container, runs a new image)
install         install Podman
load            load HCL Domino Docker image
build           builds a current image -- even image tags might not have changed to ensure OS patches are installed
port            show used tcp/ip ports for container
enable|on       enable systemd service
disable|off     disable systemd service
clean           cleanup container and systemd if configured
env             edit environment file
version         shows script version information
help            you already figured out what help does ;-)



Links

    Archives


    • [HCL Domino]
    • [Domino on Linux]
    • [Nash!Com]
    • [Daniel Nashed]