Page History
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
FROM openjdk:8-jre-alpine LABEL maintainer="Software- und Organisations-Service GmbH" # BUILD SETTINGS # provide build arguments for release information ARG JS_MAJORRELEASE ARG JS_RELEASE_MAJOR # default user id has to match later run-time user ARG JS_USER_ID=${UID:-1001} ARG JS_HTTP_PORT=${JS_HTTP_PORT:-4445} ARG JS_HTTPS_PORT=${JS_HTTPS_PORT:-4443} ARG JS_JAVA_OPTIONS=${JS_JAVA_OPTIONS} # RUN-TIME SETTINGS # JS7 JobScheduler ports and Java options ENV RUN_JS_HTTP_PORT=${RUN_JS_HTTP_PORT:-$JS_HTTP_PORT} ENV RUN_JS_HTTPS_PORT=${RUN_JS_HTTPS_PORT} ENV RUN_JS_JAVA_OPTIONS=${RUN_JS_JAVA_OPTIONS:-$JS_JAVA_OPTIONS} # PREPARATION # install process tools, bash RUN apk add --no-cache apt-get update && \ apt-get install -y procps && \ apkapt-get addinstall --no-cachey bash # setup working directory RUN mkdir -p /var/sos-berlin.com/js7 WORKDIR /var/sos-berlin.com/js7 # add/copy installation tarball # ADD https://download.sos-berlin.com/JobScheduler.${JS_RELEASE_MAJOR}/js7_agent_unix.${JS_RELEASE}.tar.gz /usr/local/src/ # INSTALLATION # COPY js7_agent_unix.${JS_RELEASE}.tar.gz /usr/local/src/ # INSTALLATION # extract tarball # for JDK < 12, /dev/random does not provide sufficient entropy, see https://kb.sos-berlin.com/x/lIM3 RUN test -e /usr/local/src/js7_agent_unix.${JS_RELEASE}.tar.gz && \ tar xfvz /usr/local/src/js7_agent_unix.${JS_RELEASE}.tar.gz -C /var/sos-berlin.com/js7 && \ rm /usr/local/src/js7_agent_unix.${JS_RELEASE}.tar.gz && \ sed -i 's/securerandom.source=file:\/dev\/random/securerandom.source=file:\/dev\/urandom/g' /usr/liblocal/jvm/javaopenjdk-1.8-openjdk/jre/lib/security/java.security # CONFIGURATION # copy configuration COPY config/ /var/sos-berlin.com/js7/agent/var_$JS_HTTP_PORT/config/ # add start script COPY start-agent.sh /usr/local/bin/ # Alpine: add jobscheduler user account and make default userit the owner of directories RUN addusergroupadd --ugid ${JS_USER_ID:-1001} --disabled-passwordjobscheduler && useradd --uid ${JS_USER_ID:-1001} --gid jobscheduler --home-dir /home/jobscheduler --no-create-home --shell /bin/bash jobscheduler jobscheduler && \ chown -R jobscheduler:jobscheduler /var/sos-berlin.com && \ chmod +x /usr/local/bin/start-agent.sh # CODA # run-time user, can be overwritten when running the container USER jobscheduler # allow incoming traffic to portports EXPOSE $RUN_JS_HTTP_PORT $RUN_JS_HTTPS_PORT CMD ["sh","-c","/usr/local/bin/start-agent.sh --http-port=$RUN_JS_HTTP_PORT --https-port=$RUN_JS_HTTPS_PORT --java-options=\"$RUN_JS_JAVA_OPTIONS\""] |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#!/bin/shbash set -e SCRIPT_HOME=$(dirname "$0") SCRIPT_HOME="`cd \"${SCRIPT_HOME}\" >/dev/null && pwd`" SCRIPT_FOLDER="`basename $(dirname "$SCRIPT_HOME")`" IMAGE_NAME="$(basename "$SCRIPT_HOME")" REPOSITORY_NAME="sosberlin/js7" # ----- modify # ----- modify default settings ----- JS_MAJOR_DEFAULT="2.0" JS_RELEASE_DEFAULT="2.0.0-SNAPSHOT" JS_USER_ID_DEFAULTREPOSITORY="$UIDsosberlin/js7" JS_NETWORK_DEFAULTIMAGE="js7" JS_HTTP_PORT_DEFAULT$(basename "${SCRIPT_HOME}")-${JS_RELEASE//\./-}" JS_USER_ID="$UID" JS_NETWORK="js7" JS_HTTP_PORT="4445" JS_HTTPS_PORT_DEFAULT="4443" JS_JAVA_OPTIONS_DEFAULT="-Xmx500m" JS_BUILD_ARGS_DEFAULT="" # ----- modify default settings ----- for option in "$@" do case "$option" in --networkrelease=*) JS_NETWORKRELEASE=`echo "$option" | sed 's/--networkrelease=//'` ;; --http-portrepository=*) JS_HTTP_PORT=REPOSITORY=`echo "$option" | sed 's/--http-portrepository=//'` ;; --https-portimage=*) JS_HTTPS_PORTIMAGE=`echo "$option" | sed 's/--https-portimage=//'` ;; --javauser-optionsid=*) JS_JAVAUSER_OPTIONSID=`echo "$option" | sed 's/--javauser-optionsid=//'` ;; --build-argsnetwork=*) JS_BUILD_ARGSNETWORK=`echo "$option" | sed 's/--build-argsnetwork=//'` ;; *)--http-port=*) echo "unknown argument: $option" JS_HTTP_PORT=`echo "$option" | sed 's/--http-port=//'` exit 1 ;; --https-port=*) JS_HTTPS_PORT=`echo "$option" | sed 's/--https-port=//'` ;; esac done JS_MAJOR="${JS_MAJOR:-$JS_MAJOR_DEFAULT}" JS_RELEASE="${JS_RELEASE:-$JS_RELEASE_DEFAULT}" JS_USER_ID="${JS_USER_ID:-$JS_USER_ID_DEFAULT}" JS_NETWORK="${JS_NETWORK:-$JS_NETWORK_DEFAULT}" JS_HTTP_PORT="${JS_HTTP_PORT:-$JS_HTTP_PORT_DEFAULT}" JS_HTTPS_PORT="${JS_HTTPS_PORT:-$JS_HTTPS_PORT_DEFAULT}" JS_JAVA_OPTIONS="${JS_JAVA_OPTIONS:-$JS_JAVA_OPTIONS_DEFAULT}" JS_BUILD_ARGS="${JS_BUILD_ARGS:-$JS_BUILD_ARGS_DEFAULT}" --java-options=*) JS_JAVA_OPTIONS=`echo "$option" | sed 's/--java-options=//'` ;; --build-args=*) JS_BUILD_ARGS=`echo "$option" | sed 's/--build-args=//'` ;; *) echo "unknown argument: $option" exit 1 ;; esac done set -x docker build --no-cache --rm \ --tag=$REPOSITORY$JS_NAMEREPOSITORY:$IMAGE$JS_NAMEIMAGE \ --file=$SCRIPT_HOME/build/Dockerfile \ --network=$JS_NETWORK \ --build-arg="JS_MAJORRELEASE=$JS_MAJORRELEASE" \ --build-arg="JS_RELEASE_MAJOR=$(echo $JS_RELEASE | cut -d . -f 1,2)" \ --build-arg="JS_USER_ID=$JS_USER_ID" \ --build-arg="JS_HTTP_PORT=$JS_HTTP_PORT" \ --build-arg="JS_HTTPS_PORT=$JS_HTTPS_PORT" \ --build-arg="JS_JAVA_OPTIONS=$JS_JAVA_OPTIONS" \ $JS_BUILD_ARGS $SCRIPT_HOME/build set +x |
...
Overview
Content Tools