#!/bin/bash ############# # VARIABLES # ############# REPO_DIR="$(git rev-parse --show-toplevel 2>/dev/null)" [ -z "$REPO_DIR" ] && { echo "You must execute under a valid git repository !" ; exit 1 ; } VARIANT=${1:-Release} ############# # FUNCTIONS # ############# # $1: image directory build_image() { local imgdir=$1 local imgname=$(basename ${imgdir}) local imgtag=${TAG} echo "Building ${imgname}:${imgtag} ..." cd ${imgdir} # Dockerfile for other contexts: local dck_opt= local preferred=Dockerfile.$(arch) [ -f ${preferred} ] && { dck_opt="-f ${preferred}" ; echo "Selected '${preferred}' for current architecture." ; } [ -z "${dck_opt}" -a ! -f Dockerfile ] && { echo "No Dockerfile for this directory. Ignoring ..." ; cd - >/dev/null ; return 1 ; } docker build -t ${imgname}:${imgtag} ${dck_opt} . [ $? -ne 0 ] && { echo "An error ocurred. Aborting ..." ; cd - >/dev/null ; return 1 ; } cd - >/dev/null } ############# # EXECUTION # ############# echo echo "Remember usage: $0 [variant: Release|Debug], Release by default" echo TAG=$(${REPO_DIR}/tools/version) # Build compilation image: build_image ${REPO_DIR}/docker-images/anna-build-nodb # this image has neither oracle nor mysql installed # Build source with previous compilation image: docker run --rm -it -u $(id -u):$(id -g) -e VARIANT=${VARIANT} -v ${REPO_DIR}:/code -w /code anna-build-nodb:${TAG}