A few changes are necessary for the best out-of-the-box experience on Docker-based application platforms such as OpenShift: 1. For security purposes, they run the containers as non-root. Before this change, the user was trying to write to the home dir, which is set to /root by default. 2. Deploy time is limited, and the download of dependencies by Jetty at start-up time, while convenient for testing, causes timeouts when deploying. a WAR is now created during Docker image creation, and as a result starting up the container is really fast now. In addition, it is now possible to enable debug logging for Jetty by uncommenting the relevant line in the Dockerfile.
PlantUML Server
PlantUML Server is a web application to generate UML diagrams on-the-fly.
To know more about PlantUML, please visit http://plantuml.sourceforge.net/.
Requirements
- jre/jdk 1.6.0 or above
- apache maven 3.0.2 or above
How to run the server
Just run:
mvn jetty:run
The server is now listing to http://localhost:8080/plantuml. In this way the server is run on an embedded jetty server.
You can specify the port at which it runs:
mvn jetty:run -Djetty.port=9999"
How to run the server with Docker
docker build -t plantuml-server .
docker run -d -p 8080:8080 plantuml-server
The server is now listing to http://localhost:8080/plantuml.
You may specity the port in -p
Docker command line argument.
Alternate: How to run the server with Tomcat + Docker?
Above method uses maven to run the application. That requires internet connectivity. That is undesireable in a corporate environment with firewalls. So, you can use following command to create a self-contained docker image that will "just-work".
Note: Generate the WAR (instructions further below) prior to running "docker build"
docker build -t plantuml-server:tomcat8 -f Dockerfile.tomcat8 .
docker run -d -p 8080:8080 plantuml-server:tomcat8
The server is now listing to http://localhost:8080/plantuml.
You may specity the port in -p
Docker command line argument.
How to generate the war
To build the war, just run:
mvn package
at the root directory of the project to produce plantuml.war in the target/ directory.