Improve docker build script - option to build single service and custom tag (#2284)

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2025-02-17 13:25:34 +02:00
committed by GitHub
parent 4051e4b550
commit 59f2eed87b
2 changed files with 60 additions and 46 deletions

View File

@@ -1,46 +0,0 @@
#!/bin/bash
#
# Copyright (c) 2023 Bosch.IO GmbH and others
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
set -xe
# Usage: builds all docker images. Use:
# -v <version> to pass version
# -f <flavour> to pass flavour. "mysql" stands for MySQL while all the rest (and default) is assumed Standard
# -r <local maven repository> the local maven repository the already built application jars are located into
VERSION=0-SNAPSHOT
MVN_REPO=~/.m2/repository
while getopts v:f:r: option
do
case "${option}"
in
v)VERSION=${OPTARG};;
r)MVN_REPO=${OPTARG};;
esac
done
echo "hawkBit version : ${VERSION}"
echo "maven repository : ${MVN_REPO}"
DOCKER_FILE="Dockerfile_dev"
echo "docker file : ${DOCKER_FILE}"
function build() {
docker build -t hawkbit/$1:${VERSION} -t hawkbit/$1:latest --build-arg HAWKBIT_APP=$1 --build-arg HAWKBIT_VERSION=${VERSION} -f ${DOCKER_FILE} "${MVN_REPO}"
}
# micro-services
build "hawkbit-ddi-server"
build "hawkbit-dmf-server"
build "hawkbit-mgmt-server"
build "hawkbit-simple-ui"
# monolith
build "hawkbit-update-server"

View File

@@ -0,0 +1,60 @@
#!/bin/bash
#
# Copyright (c) 2023 Bosch.IO GmbH and others
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
#set -xe
# Usage: builds all docker images. Use:
# -v <version> to pass version
# -r <local maven repository> the local maven repository the already built application jars are located into
# -t <docker tag> the docker tag the build image(s) will be tagged with
# <application> - if not passed all images will be built
VERSION=0-SNAPSHOT
MVN_REPO=~/.m2/repository
TAG=latest
while getopts v:r:t: option
do
case "${option}"
in
v)VERSION=${OPTARG};;
r)MVN_REPO=${OPTARG};;
t)TAG=${OPTARG};;
*) echo "Usage: $0 -v <version default 0-SNAPSHOT> -r <repository default ~/.m2/repository> -t <tag default latest> <application default all>"; exit 1;;
esac
done
# Shift arguments after pots
shift $((OPTIND - 1))
echo "hawkBit version : ${VERSION}"
echo "maven repository : ${MVN_REPO}"
echo "docker tag : ${TAG}"
DOCKER_FILE="Dockerfile_dev"
echo "docker file : ${DOCKER_FILE}"
function build() {
docker build -t hawkbit/$1:${TAG} --build-arg HAWKBIT_APP=$1 --build-arg HAWKBIT_VERSION=${VERSION} -f ${DOCKER_FILE} "${MVN_REPO}"
}
if [ -z "$1" ]; then
echo "Build all"
# micro-services
build "hawkbit-ddi-server"
build "hawkbit-dmf-server"
build "hawkbit-mgmt-server"
build "hawkbit-simple-ui"
# monolith
build "hawkbit-update-server"
else
echo "Build $1"
build $1
fi