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 ;-)
- Comments [3]