Granted, several efforts have already been made in this regard, I nevertheless decided to publish my own recipe for building and running a Domino Docker container.
All my images are built on top of a Debian distribution, as I am fond of it. Not that is should matter, considered the choice of a distro for an image is kind of irrelevant when running containers. I however feel better knowing that all of my images are not needlessly based on many Linux distros. In my case it’s just 2: Alpine or Debian.
Having that being said, the container’s life cycle is very straightforward. There’s no need of taking care of ulimit parameters, running services etc., as it happens with a regular Linux installation; a container’s life is about the main process (PID 1). So, the way I designed the script that runs the server tries to embrace that simplicity while still giving practical access to the server console.
So, when I create the container to be run in interactive mode (-it
) the only information that will be displayed is about how to attach to the console and how the container should be stopped (the normal docker container stop
).
$ docker container run --rm -it --stop-timeout 60 shillem-domino:9.0.1
Run 'docker container exec -it <container> screen -r console' to access the server setup information.
Run 'docker container stop <container>' to stop the server setup.
The wording is slightly different depending on whether a new server was created or a server with existing data was started. Assuming we are talking about a server with existing data I could simply type:
shillem at shillems-macbook-pro on ~
$ docker start powerplant
powerplant
shillem at shillems-macbook-pro on ~
$ docker exec -it powerplant screen -r console
That will project me inside the container giving me access to the screen session that runs the server and consequently allowing me to interact with the console.
[00063:00002-00007F2339401740] IBM Domino (r) Server (64 Bit), Release 9.0.1FP10HF382 , November 19, 2018
[00063:00002-00007F2339401740] Copyright (c) IBM Corporation 1987, 2013. All Rights Reserved.
[00063:00002-00007F2339401740] refreshing view $Users - 03/21/2019 10:49:09
[00063:00002-00007F2339401740] finished refresh - 03/21/2019 10:49:09
[00129:00002-00007FE97FB1A740] 03/21/2019 10:49:09 Event Monitor started
[00063:00002-00007F2339401740] 03/21/2019 10:49:14 Begin scan of databases to be consistency checked
[00063:00002-00007F2339401740] 03/21/2019 10:49:14 End scan of databases: 1 found
[00063:00002-00007F2339401740] 03/21/2019 10:49:23 Server started on physical node powerplant.springfield.local
[00063:00008-00007F2330592700] 03/21/2019 10:49:24 Successfully registered 1 system filters.
[00063:00008-00007F2330592700] 03/21/2019 10:49:24 The Console file is /var/domino/data/IBM_TECHNICAL_SUPPORT/console.log
[00063:00008-00007F2330592700] 03/21/2019 10:49:24 Console Logging is DISABLED
> [00063:00008-00007F2330592700] 03/21/2019 10:49:24 Database Server started
[01430:00002-00007FA5392BD740] 03/21/2019 10:49:24 Admin Process: powerplant/springfield is the Administration Server of the Domino Directory.
[01443:00002-00007F1C520C4740] 03/21/2019 10:49:24 DAOSMGR: DAOS is not enabled, nothing to do.
[01427:00002-00007FC527773740] 03/21/2019 10:49:24 Index update process started:
[01428:00002-00007F9A5285C740] 03/21/2019 10:49:24 Database Replicator started
[01428:00002-00007F9A5285C740] 03/21/2019 10:49:24 Replicator is set to Ignore Database Quotas
[01439:00002-00007F3556A6C740] 03/21/2019 10:49:24 SMTP Server: Starting...
[01434:00002-00007F018BB12740] 03/21/2019 10:49:24 HTTP Server: Using Internet Site Configuration View
[01439:00002-00007F3556A6C740] 03/21/2019 10:49:24 SMTP Server: Started
[01430:00002-00007FA5392BD740] 03/21/2019 10:49:24 Administration Process started
[01429:00002-00007FDBD7A5B740] 03/21/2019 10:49:25 Router: Mail Router started for domain USA
[01429:00002-00007FDBD7A5B740] 03/21/2019 10:49:25 Router: Internet SMTP host powerplant in domain springfield.local
[01434:00002-00007F018BB12740] 03/21/2019 10:49:27 JVM: Java Virtual Machine initialized.
[01434:00002-00007F018BB12740] 03/21/2019 10:49:27 HTTP Server: Java Virtual Machine loaded
[01434:00002-00007F018BB12740] 03/21/2019 10:49:27.95 CSRF Init: iNotes_WA_Security_ReturnUrlCheck> c_CSRFReturnUrlCheck: 1
[01434:00002-00007F018BB12740] 03/21/2019 10:49:29 HTTP JVM: CLFAD0330I: NSF Based plugins are being installed in the OSGi runtime. For more information please consult the log
[01434:00002-00007F018BB12740] 03/21/2019 10:49:48 XSP Command Manager initialized
[01434:00002-00007F018BB12740] 03/21/2019 10:49:48 HTTP Server: Started
The complete explanation for building images and running the container can be found in the project’s README.MD.