Docker for JSPWiki#
After some experiments with Docker I came up with a working solution for running JSPWiki in Tomcat on Linux in a Docker container.
What container is it ?#
The JSPWiki Docker image has 3 level parents :
- centos7 (the base OS we use, pulled from official centos docker hub)
- java7 installed (see dockerfile for details)
- tomcat 8.0.20 installed (see dockerfile for details)
As locally seen with the docker images command :
[root@vbox dockerfiles]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE harry jspwiki-2.10.2-svn-14 3e33f5d2d612 2 minutes ago 618.3 MB harry tomcat-8.0.20 d9e7a3a95230 11 minutes ago 542.7 MB harry java7 c5eb18fad024 7 days ago 501.5 MB centos 7 dade6cb4530a 4 weeks ago 224 MB centos centos7 dade6cb4530a 4 weeks ago 224 MB centos latest dade6cb4530a 4 weeks ago 224 MB
What do I need to run it ?#
Well, the is simple, you "only" need a docker runtime. See the installation instructions
on the docker site.
Then you need the image, well I uploaded it to the docker hub, see : to come
How do I run it#
The most simple way to go is :
docker run -d -p 80:8080 --env="jspwiki.baseURL=http://10.0.0.196/" harry:jspwiki-2.10.2-svn-14
This means :
- -d - detached mode, run the container in the background
- -p 80:8080 - bind the host port (80) to the container port (8080). JSPWiki always runs on port 8080 inside the container.
- --env="jspwiki.baseURL=http://10.0.0.196/" - you have to override this variable, because the jspwiki baseURL must match the URL that you use to access the wiki (the 10.0.0.196 is just an example of course)
- harry:jspwiki-2.10.2-svn-14 - the name of the image to run
How can I check it ?#
You can point your browser at the baseURL of course, that should give you a working wiki right away !
You should see a process running on your host container:
[root@vbox dockerfiles]# ps -ef|grep tomcat centos 11909 1070 5 19:12 ? 00:00:38 java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
You should also see a running docker container now :
[root@vbox dockerfiles]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e1da0696c689 harry:jspwiki-2.10.2-svn-14 "/bin/sh -c '/usr/lo 13 minutes ago Up 13 minutes 0.0.0.0:80->8080/tcp jspwiki_80
You can also "log in" to your container with the docker exec command and look what is in /var/jspwiki :
[root@vbox dockerfiles]# docker exec -ti jspwiki_80 bash [tomcat@e1da0696c689 /]$ find /var/jspwiki | head -5 /var/jspwiki /var/jspwiki/pages /var/jspwiki/pages/LoginHelp.txt /var/jspwiki/pages/CopyrightNotice.txt /var/jspwiki/pages/LeftMenu.txt [tomcat@e1da0696c689 /]$ exit exit [root@vbox dockerfiles]#
TODO#
- stop the container
- remove the container
- multiple instances
- persisten pages, howto
