I want to deploy the server in an Openshift Origin cluster, which is essentially Kubernetes + a management layer on top. I used your Dockerfile as a starting point, but made a few modifications:
Step 2 is necessary because otherwise, the start-up phase of the container will fail if it takes too long to start.
The big problem I have is that in this mode, the server enters a loop of redirects which is ended by the browser with a Too Many Redirects error. Here's an excerpt of the logfile with Jetty debug output:
2017-03-20 23:48:46.580:DBUG:oeji.nio:created SCEP@506b4efb{l(/172.17.0.1:40738)<->r(/172.17.0.5:8080),d=false,open=true,ishut=false,oshut=false,rb=false,wb=false,w=true,i=0}-{AsyncHttpConnection@5fd399cb,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-14,l=0,c=0},r=0}
2017-03-20 23:48:46.584:DBUG:oejh.HttpParser:filled 2931/2931
2017-03-20 23:48:46.589:DBUG:oejs.Server:REQUEST / on AsyncHttpConnection@5fd399cb,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-5,l=13,c=0},r=1
2017-03-20 23:48:46.589:DBUG:oejsh.ContextHandler:scope null||/ @ o.e.j.w.WebAppContext{/,[file:/app/target/plantuml/, jar:file:/app/target/plantuml/WEB-INF/lib/codemirror-3.21.jar!/META-INF/resources/]},file:/app/target/plantuml.war
2017-03-20 23:48:46.589:DBUG:oejsh.ContextHandler:context=||/ @ o.e.j.w.WebAppContext{/,[file:/app/target/plantuml/, jar:file:/app/target/plantuml/WEB-INF/lib/codemirror-3.21.jar!/META-INF/resources/]},file:/app/target/plantuml.war
2017-03-20 23:48:46.595:DBUG:oejs.session:sessionManager=org.eclipse.jetty.server.session.HashSessionManager@47b2e9e1
2017-03-20 23:48:46.595:DBUG:oejs.session:session=null
2017-03-20 23:48:46.595:DBUG:oejs.ServletHandler:servlet |/|null -> default
2017-03-20 23:48:46.597:DBUG:oejs.ServletHandler:chain=null
2017-03-20 23:48:46.599:DBUG:oejs.DefaultServlet:Resource /=file:/app/target/plantuml/
2017-03-20 23:48:46.599:DBUG:oejs.DefaultServlet:uri=/ resource=file:/app/target/plantuml/ content
2017-03-20 23:48:46.609:DBUG:oejs.DefaultServlet:Resource /welcome=null
2017-03-20 23:48:46.609:DBUG:oejs.DefaultServlet:welcome=/welcome
2017-03-20 23:48:46.610:DBUG:oejsh.ContextHandler:scope /||/welcome @ o.e.j.w.WebAppContext{/,[file:/app/target/plantuml/, jar:file:/app/target/plantuml/WEB-INF/lib/codemirror-3.21.jar!/META-INF/resources/]},file:/app/target/plantuml.war
2017-03-20 23:48:46.610:DBUG:oejsh.ContextHandler:context=||/welcome @ o.e.j.w.WebAppContext{/,[file:/app/target/plantuml/, jar:file:/app/target/plantuml/WEB-INF/lib/codemirror-3.21.jar!/META-INF/resources/]},file:/app/target/plantuml.war
2017-03-20 23:48:46.610:DBUG:oejs.session:sessionManager=org.eclipse.jetty.server.session.HashSessionManager@47b2e9e1
2017-03-20 23:48:46.610:DBUG:oejs.session:session=null
2017-03-20 23:48:46.610:DBUG:oejs.ServletHandler:servlet |/welcome|null -> plantumlservlet
2017-03-20 23:48:46.610:DBUG:oejs.ServletHandler:chain=null
2017-03-20 23:48:46.610:DBUG:oejw.WebAppClassLoader:loaded interface java.lang.CharSequence
2017-03-20 23:48:46.610:DBUG:oejw.WebAppClassLoader:loaded interface java.lang.CharSequence from null
2017-03-20 23:48:46.610:DBUG:oejw.WebAppClassLoader:loaded class java.net.HttpURLConnection
2017-03-20 23:48:46.610:DBUG:oejw.WebAppClassLoader:loaded class java.net.HttpURLConnection from null
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class javax.net.ssl.HttpsURLConnection
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class javax.net.ssl.HttpsURLConnection from null
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class java.lang.Throwable
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class java.lang.Throwable from null
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class java.lang.Exception
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class java.lang.Exception from null
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded interface javax.servlet.ServletResponse
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded interface javax.servlet.ServletResponse from sun.misc.Launcher$AppClassLoader@4b67cf4d
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded interface javax.servlet.ServletRequest
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded interface javax.servlet.ServletRequest from sun.misc.Launcher$AppClassLoader@4b67cf4d
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class java.util.regex.Pattern
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class java.util.regex.Pattern from null
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded interface javax.servlet.http.HttpServletRequest
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded interface javax.servlet.http.HttpServletRequest from sun.misc.Launcher$AppClassLoader@4b67cf4d
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class java.lang.String
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class java.lang.String from null
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class java.io.IOException
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded class java.io.IOException from null
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded interface javax.servlet.http.HttpServletResponse
2017-03-20 23:48:46.611:DBUG:oejw.WebAppClassLoader:loaded interface javax.servlet.http.HttpServletResponse from sun.misc.Launcher$AppClassLoader@4b67cf4d
2017-03-20 23:48:46.612:DBUG:oejw.WebAppClassLoader:loaded class java.lang.Object
2017-03-20 23:48:46.612:DBUG:oejw.WebAppClassLoader:loaded class java.lang.Object from null
2017-03-20 23:48:46.612:DBUG:oejw.WebAppClassLoader:loaded interface net.sourceforge.plantuml.code.Transcoder from WebAppClassLoader=plantuml@4f8e5cde
2017-03-20 23:48:46.612:DBUG:oejw.WebAppClassLoader:loaded class java.net.URL
2017-03-20 23:48:46.612:DBUG:oejw.WebAppClassLoader:loaded class java.net.URL from null
2017-03-20 23:48:46.612:DBUG:oejw.WebAppClassLoader:loaded class java.io.InputStream
2017-03-20 23:48:46.612:DBUG:oejw.WebAppClassLoader:loaded class java.io.InputStream from null
2017-03-20 23:48:46.612:DBUG:oejw.WebAppClassLoader:loaded class javax.servlet.ServletException
2017-03-20 23:48:46.612:DBUG:oejw.WebAppClassLoader:loaded class javax.servlet.ServletException from sun.misc.Launcher$AppClassLoader@4b67cf4d
2017-03-20 23:48:46.614:DBUG:oejw.WebAppClassLoader:loaded class java.util.regex.Matcher
2017-03-20 23:48:46.614:DBUG:oejw.WebAppClassLoader:loaded class java.util.regex.Matcher from null
2017-03-20 23:48:46.614:DBUG:oejw.WebAppClassLoader:loaded class java.lang.StringBuilder
2017-03-20 23:48:46.614:DBUG:oejw.WebAppClassLoader:loaded class java.lang.StringBuilder from null
2017-03-20 23:48:46.649:DBUG:oejs.Server:RESPONSE / 302 handled=true
2017-03-20 23:48:46.649:DBUG:oejs.AsyncHttpConnection:Enabled read interest SCEP@506b4efb{l(/172.17.0.1:40738)<->r(/172.17.0.5:8080),d=true,open=true,ishut=false,oshut=false,rb=false,wb=false,w=true,i=0r}-{AsyncHttpConnection@5fd399cb,g=HttpGenerator{s=4,h=0,b=-1,c=-1},p=HttpParser{s=0,l=13,c=0},r=1}
2017-03-20 23:48:46.650:DBUG:oejh.HttpParser:filled 0/0
2017-03-20 23:48:46.672:DBUG:oejh.HttpParser:filled 2967/2967
2017-03-20 23:48:46.674:DBUG:oejs.Server:REQUEST /uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 on AsyncHttpConnection@5fd399cb,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-5,l=13,c=0},r=2
2017-03-20 23:48:46.674:DBUG:oejsh.ContextHandler:scope null||/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 @ o.e.j.w.WebAppContext{/,[file:/app/target/plantuml/, jar:file:/app/target/plantuml/WEB-INF/lib/codemirror-3.21.jar!/META-INF/resources/]},file:/app/target/plantuml.war
2017-03-20 23:48:46.674:DBUG:oejsh.ContextHandler:context=||/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 @ o.e.j.w.WebAppContext{/,[file:/app/target/plantuml/, jar:file:/app/target/plantuml/WEB-INF/lib/codemirror-3.21.jar!/META-INF/resources/]},file:/app/target/plantuml.war
2017-03-20 23:48:46.674:DBUG:oejs.session:sessionManager=org.eclipse.jetty.server.session.HashSessionManager@47b2e9e1
2017-03-20 23:48:46.674:DBUG:oejs.session:session=null
2017-03-20 23:48:46.674:DBUG:oejs.ServletHandler:servlet |/uml|/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 -> plantumlservlet
2017-03-20 23:48:46.675:DBUG:oejs.ServletHandler:chain=null
2017-03-20 23:48:46.675:DBUG:oejs.Server:RESPONSE /uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 302 handled=true
2017-03-20 23:48:46.675:DBUG:oejs.AsyncHttpConnection:Enabled read interest SCEP@506b4efb{l(/172.17.0.1:40738)<->r(/172.17.0.5:8080),d=true,open=true,ishut=false,oshut=false,rb=false,wb=false,w=true,i=1r}-{AsyncHttpConnection@5fd399cb,g=HttpGenerator{s=4,h=0,b=-1,c=-1},p=HttpParser{s=0,l=13,c=0},r=2}
2017-03-20 23:48:46.677:DBUG:oejh.HttpParser:filled 0/0
2017-03-20 23:48:46.729:DBUG:oejh.HttpParser:filled 2967/2967
2017-03-20 23:48:46.730:DBUG:oejs.Server:REQUEST /uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 on AsyncHttpConnection@5fd399cb,g=HttpGenerator{s=0,h=-1,b=-1,c=-1},p=HttpParser{s=-5,l=13,c=0},r=3
2017-03-20 23:48:46.730:DBUG:oejsh.ContextHandler:scope null||/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 @ o.e.j.w.WebAppContext{/,[file:/app/target/plantuml/, jar:file:/app/target/plantuml/WEB-INF/lib/codemirror-3.21.jar!/META-INF/resources/]},file:/app/target/plantuml.war
2017-03-20 23:48:46.730:DBUG:oejsh.ContextHandler:context=||/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 @ o.e.j.w.WebAppContext{/,[file:/app/target/plantuml/, jar:file:/app/target/plantuml/WEB-INF/lib/codemirror-3.21.jar!/META-INF/resources/]},file:/app/target/plantuml.war
2017-03-20 23:48:46.731:DBUG:oejs.session:sessionManager=org.eclipse.jetty.server.session.HashSessionManager@47b2e9e1
2017-03-20 23:48:46.731:DBUG:oejs.session:session=null
2017-03-20 23:48:46.731:DBUG:oejs.ServletHandler:servlet |/uml|/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 -> plantumlservlet
2017-03-20 23:48:46.731:DBUG:oejs.ServletHandler:chain=null
2017-03-20 23:48:46.731:DBUG:oejs.Server:RESPONSE /uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 302 handled=true
There's the initial request plus a couple of HTTP 302 redirects.
I know next to nothing about Maven/Jetty etc. amy help in debugging the issue would be appreciated. I will file a PR once I get it working. While it makes the server working on OpenShift, it's still a generic Dockerfile that can be used in replacement of the existing one.