#!/bin/bash ###### # This script builds the docker image locally # It expects docker to be logged in to ECR (see aws-login) set -e VERBOSE=0 DIR=`dirname $(realpath "${BASH_SOURCE[0]}")` OLDDIR=`pwd` cd "$DIR" source "$DIR/../config" source "$DIR/libs.sh" usage() { echo "Usage: $0 [-h] [-v] [-t: version] [action(s), see below]" 1>&2; echo "This script builds framework docker images, the following options are available:" 1>&2; echo " -h: This message" 1>&2; echo " Actions" 1>&2; echo " -u: Unit tests locally" 1>&2; echo " -d: Run debug vesion locally" 1>&2; echo " -p: Publish (requires a version)" 1>&2; echo " -t: Software version, this will be used for the docker tag (default: local)" 1>&2; echo " -v: Verbose" 1>&2; exit 1; } UNIT_MODE=0 DEBUG_MODE=0 PUBLISH_MODE=0 SELECTED_MODES=0 TAG="local" while getopts "t:hvudp" o; do case "${o}" in u) UNIT_MODE=1 SELECTED_MODES+=1 ;; d) DEBUG_MODE=1 SELECTED_MODES+=1 ;; p) PUBLISH_MODE=1 SELECTED_MODES+=1 ;; t) TAG=${OPTARG} ;; v) VERBOSE=1 ;; h) usage ;; *) printerr "Unsupported option ${o}" usage ;; esac done if [[ $SELECTED_MODES -eq 0 ]]; then printerr "No mode selected" usage fi if [[ $SELECTED_MODES -ne 1 ]]; then printerr "Select only one mode" usage fi ./aws-login.sh if [[ $UNIT_MODE -eq 1 ]]; then BUILDOPT+="u" UNITOPT="" if [[ $VERBOSE -gt 0 ]]; then BUILDOPT+="v" UNITOPT="-v" fi msg "running ./build.sh -$BUILDOPT -t $TAG" ./build.sh -$BUILDOPT -t $TAG ./run-unit.sh $UNITOPT -t $TAG fi if [[ $PUBLISH_MODE -eq 1 ]]; then BUILDOPT+="bu" VERBOPT="" if [[ $VERBOSE -gt 0 ]]; then BUILDOPT+="v" VERBOPT="-v" fi msg "running ./build.sh -$BUILDOPT -t $TAG" ./build.sh -$BUILDOPT -t $TAG ./run-unit.sh $VERBOPT -t $TAG ./publish.sh $VERBOPT -t $TAG fi if [[ $DEBUG_MODE -eq 1 ]]; then BUILDOPT+="d" if [[ $VERBOSE -gt 0 ]]; then BUILDOPT+="v" fi msg "running ./build.sh -$BUILDOPT -t $TAG" ./build.sh -$BUILDOPT -t $TAG OUT_FOLDER="/home/$PROJECT_AUTHOR/$PROJECT_BUILDNAME/local" mkdir -p $OUT_FOLDER ./generateComposeFolder.sh -L -o "$OUT_FOLDER" -t $TAG cd "$OUT_FOLDER" docker-compose up -d fi