diff --git a/Dockerfile b/Dockerfile index 3027e7e..91f3fb0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,9 +2,11 @@ ARG MAVEN_TAG=latest FROM maven:${MAVEN_TAG} ADD setup.sh / -ADD entrypoint.sh / RUN /setup.sh && \ rm -f /setup.sh + +ADD entrypoint.sh / +ADD init.sh / ADD ./mvn /usr/local/bin/mvn ENV DISPLAYNUM=99 diff --git a/entrypoint.sh b/entrypoint.sh index 6d93b15..4abe07e 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,5 +1,4 @@ -#!/bin/sh - -Xvfb :$DISPLAYNUM -screen $SCREENNUM 1920x1080x24 > /dev/null 2>&1 & +#!/bin/sh -eu +/init.sh exec /usr/local/bin/mvn-entrypoint.sh "$@" diff --git a/init.sh b/init.sh new file mode 100755 index 0000000..3bc9439 --- /dev/null +++ b/init.sh @@ -0,0 +1,10 @@ +#!/bin/sh -eu + +ENTRYPOINT_LOCK_FILE=/tmp/.mdsdtools_init_xvfb.lock + +if [ ! -f "$ENTRYPOINT_LOCK_FILE" ]; then + # start virtual frame buffer + Xvfb :$DISPLAYNUM -screen $SCREENNUM 1920x1080x24 > /dev/null 2>&1 & + touch "$ENTRYPOINT_LOCK_FILE" +fi + diff --git a/mvn b/mvn index bfcec21..644749b 100755 --- a/mvn +++ b/mvn @@ -1,4 +1,4 @@ -#!/bin/sh - -exec /entrypoint.sh /usr/bin/mvn "$@" +#!/bin/sh -eu +/init.sh +exec /usr/bin/mvn "$@"