From 401659a4a27abc8e1f5562159a847805f8c55588 Mon Sep 17 00:00:00 2001 From: Olaf Meeuwissen Date: Thu, 15 Nov 2018 21:29:32 +0900 Subject: [PATCH 1/6] Keep the Docker build context small --- .dockerignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6975714 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +# .dockerignore -- stuff we don't need during image builds + +/.git/ From f0b05ab711220ef38c8f576f2e8fe130780bfda7 Mon Sep 17 00:00:00 2001 From: Olaf Meeuwissen Date: Thu, 15 Nov 2018 21:32:48 +0900 Subject: [PATCH 2/6] Remove unneeded packages and environment variables from the builder --- Dockerfile.jetty | 7 ------- Dockerfile.tomcat | 5 ----- 2 files changed, 12 deletions(-) diff --git a/Dockerfile.jetty b/Dockerfile.jetty index e71f144..2050f9e 100644 --- a/Dockerfile.jetty +++ b/Dockerfile.jetty @@ -1,13 +1,8 @@ FROM maven:3-jdk-8 AS builder -RUN apt-get update && \ - apt-get install -y --no-install-recommends graphviz fonts-wqy-zenhei && \ - apt-get clean - COPY pom.xml /app/ COPY src /app/src/ -ENV MAVEN_CONFIG=/app/.m2 WORKDIR /app RUN mvn package @@ -25,5 +20,3 @@ RUN apt-get update && \ USER jetty COPY --from=builder /app/target/plantuml.war /var/lib/jetty/webapps/ROOT.war - - diff --git a/Dockerfile.tomcat b/Dockerfile.tomcat index 7d4b20d..7807318 100644 --- a/Dockerfile.tomcat +++ b/Dockerfile.tomcat @@ -1,13 +1,8 @@ FROM maven:3-jdk-8 AS builder -RUN apt-get update && \ - apt-get install -y --no-install-recommends graphviz fonts-wqy-zenhei && \ - apt-get clean - COPY pom.xml /app/ COPY src /app/src/ -ENV MAVEN_CONFIG=/app/.m2 WORKDIR /app RUN mvn package From d73dea3d58b4ee97b5d1c0e7a6937e770b4d3d32 Mon Sep 17 00:00:00 2001 From: Olaf Meeuwissen Date: Thu, 15 Nov 2018 21:41:34 +0900 Subject: [PATCH 3/6] Do not log download progress during build This cuts down on the verbosity for at least some CI build logs. --- Dockerfile.jetty | 2 +- Dockerfile.tomcat | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.jetty b/Dockerfile.jetty index 2050f9e..128eb54 100644 --- a/Dockerfile.jetty +++ b/Dockerfile.jetty @@ -4,7 +4,7 @@ COPY pom.xml /app/ COPY src /app/src/ WORKDIR /app -RUN mvn package +RUN mvn --batch-mode package ######################################################################################## diff --git a/Dockerfile.tomcat b/Dockerfile.tomcat index 7807318..630ea34 100644 --- a/Dockerfile.tomcat +++ b/Dockerfile.tomcat @@ -4,7 +4,7 @@ COPY pom.xml /app/ COPY src /app/src/ WORKDIR /app -RUN mvn package +RUN mvn --batch-mode package ######################################################################################## From 31a42da6bb277db89db7888d939c697ad8e9a6fc Mon Sep 17 00:00:00 2001 From: Olaf Meeuwissen Date: Thu, 15 Nov 2018 21:53:00 +0900 Subject: [PATCH 4/6] Support building behind a proxy In order to use this functionality, you need to pass `--build-arg` options for the `http_proxy`, `https_proxy` and `no_proxy` values that are suitable for *your* build environment. If not behind a proxy, simply don't pass any `*_proxy` build args. --- Dockerfile.jetty | 2 +- Dockerfile.tomcat | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.jetty b/Dockerfile.jetty index 128eb54..0e68353 100644 --- a/Dockerfile.jetty +++ b/Dockerfile.jetty @@ -4,7 +4,7 @@ COPY pom.xml /app/ COPY src /app/src/ WORKDIR /app -RUN mvn --batch-mode package +RUN mvn --batch-mode --define java.net.useSystemProxies=true package ######################################################################################## diff --git a/Dockerfile.tomcat b/Dockerfile.tomcat index 630ea34..5274668 100644 --- a/Dockerfile.tomcat +++ b/Dockerfile.tomcat @@ -4,7 +4,7 @@ COPY pom.xml /app/ COPY src /app/src/ WORKDIR /app -RUN mvn --batch-mode package +RUN mvn --batch-mode --define java.net.useSystemProxies=true package ######################################################################################## From 3ce59edba7220b453cdffd52c370cd38f7fff8cb Mon Sep 17 00:00:00 2001 From: Olaf Meeuwissen Date: Thu, 15 Nov 2018 21:59:52 +0900 Subject: [PATCH 5/6] Fix rendering of non-sequence diagrams Although sequence diagrams render fine without, any(?) other diagram type requires the `GRAPHVIZ_DOT` environment variable to be set for the server to produce usable output. --- Dockerfile.jetty | 2 ++ Dockerfile.tomcat | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Dockerfile.jetty b/Dockerfile.jetty index 0e68353..f1d939c 100644 --- a/Dockerfile.jetty +++ b/Dockerfile.jetty @@ -19,4 +19,6 @@ RUN apt-get update && \ USER jetty +ENV GRAPHVIZ_DOT=/usr/bin/dot + COPY --from=builder /app/target/plantuml.war /var/lib/jetty/webapps/ROOT.war diff --git a/Dockerfile.tomcat b/Dockerfile.tomcat index 5274668..d0679ab 100644 --- a/Dockerfile.tomcat +++ b/Dockerfile.tomcat @@ -15,5 +15,7 @@ RUN apt-get update && \ apt-get install -y --no-install-recommends graphviz fonts-wqy-zenhei && \ apt-get clean +ENV GRAPHVIZ_DOT=/usr/bin/dot + RUN rm -rf /usr/local/tomcat/webapps/ROOT COPY --from=builder /app/target/plantuml.war /usr/local/tomcat/webapps/ROOT.war From 055facac9ea023a9c88f094eba4d734d48579336 Mon Sep 17 00:00:00 2001 From: Olaf Meeuwissen Date: Thu, 15 Nov 2018 22:09:14 +0900 Subject: [PATCH 6/6] Make the server's BASE_URL configurable The "special" value of `ROOT` will serve requests on `/`. Any other value should serve on `/$BASE_URL` (as long as there are no slashes in `BASE_URL` at least). The default has been set to `plantuml` to better match documentation in the README.md file. Re #80, may help with #79. --- Dockerfile.jetty | 3 ++- Dockerfile.tomcat | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Dockerfile.jetty b/Dockerfile.jetty index f1d939c..1a06a5b 100644 --- a/Dockerfile.jetty +++ b/Dockerfile.jetty @@ -21,4 +21,5 @@ USER jetty ENV GRAPHVIZ_DOT=/usr/bin/dot -COPY --from=builder /app/target/plantuml.war /var/lib/jetty/webapps/ROOT.war +ARG BASE_URL=plantuml +COPY --from=builder /app/target/plantuml.war /var/lib/jetty/webapps/$BASE_URL.war diff --git a/Dockerfile.tomcat b/Dockerfile.tomcat index d0679ab..9024999 100644 --- a/Dockerfile.tomcat +++ b/Dockerfile.tomcat @@ -17,5 +17,6 @@ RUN apt-get update && \ ENV GRAPHVIZ_DOT=/usr/bin/dot -RUN rm -rf /usr/local/tomcat/webapps/ROOT -COPY --from=builder /app/target/plantuml.war /usr/local/tomcat/webapps/ROOT.war +ARG BASE_URL=plantuml +RUN rm -rf /usr/local/tomcat/webapps/$BASE_URL +COPY --from=builder /app/target/plantuml.war /usr/local/tomcat/webapps/$BASE_URL.war