I like to start with a disclaimer : running Domino inside a Docker container is not supported by IBM , so you can of course do that but at your own risk.
After this disclaimer, i like to say Domino inside a Docker container works great and can be really useful for development task (see the slides to get our idea about that ).
Connect2016 - 1172 Shipping domino from Matteo Bisi
I've start a github account with the script we have used during the live demo during our session and you can found the docker file following this link.
Inside the docker repository you can find 3 scripts:
If you have prepared all this things you can proceed to build your Docker Image using the script in the correct order.
The Install script will build the image starting from Ubuntu SRV 14.04 LTS and will prepare the environment and setup -up Domino silently inside the container.
The setup script will build a new image starting from the previous , and will make a silent configuration of the domino server copying the pds file ( you can obtain your pds file running a serverconfig -record from your notes directory) , the txt file with all id passwords.
To build the image you have to use the docker build command :
after that you can start the container mapping his ports with this docker run command:
The FP5 script will build a new image upgraded to the new FP.
Inside the image we have defined /local/notesdata as volume so the data of the Container will be persistence.
This Dockerfile would be a proof of concept to give you an some idea and help to starts your own container.
If you don't know Docker and you are interested to work with container you can start here with this nice video tutorial
I've start a github account with the script we have used during the live demo during our session and you can found the docker file following this link.
Inside the docker repository you can find 3 scripts:
- Dockerfile-domino4ubuntu-install
- Dockerfile-domino4ubuntu-setup
- Dockerfile-domino4ubuntu-FP5
Using this 3 script you will be able to create a Domino Image pre configured with a server id of your environment.
We have decided to split the creation of the Docker Image to 3 script for flexibility but you can obviously build a docker file that install , configure and upgrade domino inside an image.
To run this scripts you have to prepare a working directory with the following:
- a folder named domino901 that contains the uncompressed Domino setup,
- initscripts that contains the Domino init script form Daniel Nashed (thanks again for your work!) ,
- serverconfig that contains the Domino certifier domino admin ID and the txt file with the ids pw
If you have prepared all this things you can proceed to build your Docker Image using the script in the correct order.
The Install script will build the image starting from Ubuntu SRV 14.04 LTS and will prepare the environment and setup -up Domino silently inside the container.
The setup script will build a new image starting from the previous , and will make a silent configuration of the domino server copying the pds file ( you can obtain your pds file running a serverconfig -record from your notes directory) , the txt file with all id passwords.
To build the image you have to use the docker build command :
docker build -t mbisi/domino901-ready-playground:1.0 -f Dockerfile-domino4ubuntu-setup .
docker run -it -p 1352:1352 -p 80:80 -p 443:443 mbisi/domino901-ready-playground:latest
The FP5 script will build a new image upgraded to the new FP.
Inside the image we have defined /local/notesdata as volume so the data of the Container will be persistence.
This Dockerfile would be a proof of concept to give you an some idea and help to starts your own container.
If you don't know Docker and you are interested to work with container you can start here with this nice video tutorial
This comment has been removed by the author.
ReplyDeleteMatteo, the last link you have, talking about a video tutorial, seems to link to a `.exe` file.
ReplyDeleteThank you Eric, link fixed
ReplyDeleteMatteo, thanks for the session and this blog post. In this post, you don't mention using the Dockerfile-domino4ubuntu-install file. I assume you do a build of it a step before doing a build of the ...-setup file. And I assume it would look something like this: docker build -t mbisi/domino901-ready-playground:1.0 -f Dockerfile-domino4ubuntu-install . Did you encounter any errors in executing that build? At Step 10, the domino install step, I get errors about read-only file system. It's at usr/share initially, so following input from a couple of posts out there, I re-ordered the chmod/chown statements and tried again. This also generated error about read-only file system, this time at write /opt/ibm/domino/notes/90010/linux/xmlschemas/domino_8_5_1.dtd, which is a command in the domino installer. Just checking that I'm actually doing the Docker build I'm supposed to, and if you have any thoughts about things I should check, thanks in advance!
ReplyDeleteHi Lance, yes i made a docker build like the one u wrote on your post but in my case work correctly.
ReplyDeleteI remember i had some issue like yours using cetos or redhat, which os are u using?
Matteo, thx for response. Ubuntu 14.0.4 for host. Figured out that I was running too small of an EC2 instance at AWS for the build as I would get that message at different points during the install. Moved to a more powerful instance and got builds working. I now have Domino running in a Docker container, yea! However, now figuring out to get a Notes client to talk to it. It can see the port, but trace is showing Connection Denied. The server you connected to has a different name from the one requested. Not sure if there's a hosts file issue in the container that needs to be figured out. I'll post back here if I get it resolved.
ReplyDeleteYeah happy to see you have fixed your issue! Probably you need to add a connections with domino name and ip address on notes client.
ReplyDeleteHave a great week
Hmm, you were correct. Strange, in that it seemed to be picking up the address from the NAB. Trace port on Servername/Domain translated to right DNS and IP. Anyway, once in personal NAB, immediately worked. Only other thing I did was modify the docker run command to do an --add-host=dnsname:127.0.0.1 One of those 2, personal nab/docker run modification did it, possibly both. Thanks again. This makes for some very interesting possibilities for IBM Connections Cloud hybrid environment where there's still a requirement for a passthru and Resource and Reservations server.
ReplyDeleteHappy it worked. We have same idea about domino inside docker for passthru in hybrid config but until now we havent used yet in prod environment (also because unfortunately until now domino isn't supported inside a container.) Have a nice week
DeleteSince I apparently didn't like my first comment, thanks for Sharing Matteo. This is a great topic.
ReplyDeleteMatteo,
ReplyDeletevery nice post, but i have a problem.
I want run Ibm Notes 9 in docker container.
Isn't a server, it's a gui application, and they run in 12.04 ubuntu version.
Any suggest ?
Ty.
Alessandro A.
Hello Alessandro,
Deletei never tried to use docker for gui application but i read it should works. You have to install the required library to start the gui.
If you are running docker on windows you should install also an x server like xming.
Good luck
great post, Matteo. I will try to dockerize my Domino installation. Do you think I could make my Domino docker image work with OpenNTF extension library and xockets.io plugin without a problem?
ReplyDeleteHi, sure you could, but remember today Domino on docker is not supported !
DeleteIs there a way to download the Domino installation for testing purposes?
ReplyDeleteHi Andrea, check this link
Deletehttps://www.ibm.com/developerworks/downloads/ls/lsds/index.html
This comment has been removed by a blog administrator.
ReplyDeleteHi Matteo,
ReplyDeleteGood afternoon. Have a question. I am in the process of switching the current lotus notes client which is currently running on windows but to run as a Unix Notes client under docker as a container. How can I able to achieve this? Just a FYI .. the Domino server is running on Windows. Any response will be greatly appreciated.
Thanks in advance..
This comment has been removed by a blog administrator.
ReplyDelete