Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagebash
titleBuild Script for Controller Image
linenumberstrue
collapsetrue
#!/bin/sh

# Examples
# ./build.sh --http-port=4444
# ./build.sh --http-port=4444 --https-port=4443
# ./build.sh --network=js7 --java-options="-Xmx1g"

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 default settings -----

JS_MAJOR_DEFAULT="2.0"
JS_RELEASE_DEFAULT="2.0.0-SNAPSHOT"

JS_USER_ID_DEFAULT="$UID"
JS_NETWORK_DEFAULT="js7"

JS_HTTP_PORT_DEFAULT="4444"
JS_HTTPS_PORT_DEFAULT="4443"

JS_JAVA_OPTIONS_DEFAULT="-Xmx500m"
JS_BUILD_ARGS_DEFAULT=""

# ----- modify default settings -----


for option in "$@"
do
  case "$option" in
         --network=*)      JS_NETWORK=`echo "$option" | sed 's/--network=//'`
                           ;;
         --http-port=*)    JS_HTTP_PORT=`echo "$option" | sed 's/--http-port=//'`
                           ;;
         --https-port=*)   JS_HTTPS_PORT=`echo "$option" | sed 's/--https-port=//'`
                           ;;
         --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


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}"

set -x

docker build --no-cache --rm \
      --tag=$REPOSITORY_NAME:$IMAGE_NAME \
      --file=$SCRIPT_HOME/build/Dockerfile \
      --network=$JS_NETWORK \
      --build-arg="JS_MAJOR=$JS_MAJOR" \
      --build-arg="JS_RELEASE=$JS_RELEASE" \
      --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

...