Any updated guides to using PlantUML with GitLab?

Some of our developers has expressed an interest in being able to use PlantUML with our GitLab.

I read and tried to follow the instructions for Debian/Ubuntu, but I found some problems:

  • It says to install git-core, that package has been renamed to git in any reasonably new Debian/Ubuntu - that’s easy to fix, just wanted to mention it if somebody wants to use this as a starting point for updating that page

  • It says to install openjdk-7-jdk, that package is not available on Debian Stretch (I don’t think I have any machines running Jessie around to check how it was in that) and on Ubuntu Xenial (don’t know how far back) and newer. I hope openjdk-8-jdk will work, as it’s going to run on a machine running Xenial maybe I should even try openjdk-9-jdk

  • It says to install tomcat7, that package is actually available on Ubuntu Xenial, but not on Ubuntu Bionic or Debian Stretch. I hope tomcat8 will work.

  • It says that the service will be ready and listening on port 8080. Even if I didn’t make other mistakes in my test, the fact the GitLab is listening on that port will prevent tomcat from doing so. It might have been fine with GitLab 8.16 when the feature was added (according to the page), but now it seems wrong. (If I start tomcat before GitLab it might end up listening on that port, but then GitLab will probably have problems).

  • It says that I can change “these defaults” (I assume that includes what port tomcat uses) by editing /etc/tomcat7/server.xml, but it doesn’t say anything about what edits to make.

Has anybody managed to setup PlantUML with GitLab on a semi-recent Debian/Ubuntu and can offer any suggestions?

We did set it up, but I’m again I can’t help you because we turned it off as well - we only used the features of it that are also features of mermaid.js which is now integrated into GitLab so we had no need to run the PlantUML server anymore. If I remember correctly, it does work with JDK 8 and Tomcat 8.

Our developers explicitly argued that PlantUML would solve some rendering that MerMaid didn’t handle, so I couldn’t choose that path.

The biggest problem I faced with using JDK8 and Tomcat9 was that the path the war file had to be in for tomcat to pick it up had changed from ...tomcat7... to ...tomcat9... (yeah, that’s a silly thing to forget to change, but I did).

Why bother if you can run it as Docker container in 1 command?

Because docker containers fits really poor into our infrastructure.