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.