Feature/docker dbinit (#2371)
* Standalone tool for initializing of hawkBit Database Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com> * Add docker build for dbinit Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com> --------- Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
61
docker/build/Dockerfile
Normal file
61
docker/build/Dockerfile
Normal file
@@ -0,0 +1,61 @@
|
||||
# set Java
|
||||
ARG JAVA_VERSION=21.0.6_7
|
||||
# extracts spring layers from the app jar (to optimize boot)
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine as build
|
||||
|
||||
ARG HAWKBIT_APP=hawkbit-update-server
|
||||
ARG HAWKBIT_VERSION=pass_as_buils_arg
|
||||
|
||||
ENV BUILD_DIR=/opt/hawkbit_build
|
||||
ENV APP=${HAWKBIT_APP}
|
||||
ENV VERSION=${HAWKBIT_VERSION}
|
||||
|
||||
COPY KEY .
|
||||
|
||||
RUN set -x &&\
|
||||
apk add --no-cache --virtual build-dependencies gnupg unzip libressl wget &&\
|
||||
gpg --import KEY &&\
|
||||
wget -O ${APP}.jar --no-verbose https://repo1.maven.org/maven2/org/eclipse/hawkbit/${APP}/${VERSION}/${APP}-${VERSION}.jar &&\
|
||||
wget -O ${APP}.jar.asc --no-verbose https://repo1.maven.org/maven2/org/eclipse/hawkbit/${APP}/${VERSION}/${APP}-${VERSION}.jar.asc &&\
|
||||
gpg --batch --verify ${APP}.jar.asc ${APP}.jar &&\
|
||||
rm /${APP}.jar.asc /KEY &&\
|
||||
apk del build-dependencies &&\
|
||||
mkdir -p ${BUILD_DIR} &&\
|
||||
cd ${BUILD_DIR} &&\
|
||||
java -Djarmode=tools -jar /${APP}.jar extract --layers --launcher --destination . &&\
|
||||
rm /${APP}.jar &&\
|
||||
rm /${APP}.jar.asc
|
||||
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine
|
||||
|
||||
RUN addgroup -S hawkbit_group && adduser -D hawkbit -G hawkbit_group
|
||||
RUN mkdir -p /artifactrepo && chown -R hawkbit /artifactrepo
|
||||
USER hawkbit
|
||||
|
||||
ENV BUILD_DIR=/opt/hawkbit_build
|
||||
COPY --from=build ${BUILD_DIR}/dependencies/ ./
|
||||
COPY --from=build ${BUILD_DIR}/spring-boot-loader/ ./
|
||||
COPY --from=build ${BUILD_DIR}/snapshot-dependencies/ ./
|
||||
COPY --from=build ${BUILD_DIR}/application/ ./
|
||||
|
||||
VOLUME "/artifactrepo"
|
||||
|
||||
ARG CONTAINER_PORT=8080
|
||||
EXPOSE ${CONTAINER_PORT}
|
||||
|
||||
ARG PROFILES=h2
|
||||
ENV PROFILES=${PROFILES}
|
||||
ARG X_MS=768m
|
||||
ENV X_MS=${X_MS}
|
||||
ARG X_MX=768m
|
||||
ENV X_MX=${X_MX}
|
||||
ARG XX_MAX_METASPACE_SIZE=250m
|
||||
ENV XX_MAX_METASPACE_SIZE=${XX_MAX_METASPACE_SIZE}
|
||||
ARG XX_METASPACE_SIZE=250m
|
||||
ENV XX_METASPACE_SIZE=${XX_METASPACE_SIZE}
|
||||
ARG XSS=300K
|
||||
ENV XSS=${XSS}
|
||||
ARG GC=G1
|
||||
ENV GC=${GC}
|
||||
|
||||
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -Dspring.profiles.active=${PROFILES} -Xms${X_MS} -Xmx${X_MX} -XX:MaxMetaspaceSize=${XX_MAX_METASPACE_SIZE} -XX:MetaspaceSize=${XX_METASPACE_SIZE} -Xss${XSS} -XX:+Use${GC}GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError org.springframework.boot.loader.launch.JarLauncher ${@}"]
|
||||
45
docker/build/Dockerfile_dbinit
Normal file
45
docker/build/Dockerfile_dbinit
Normal file
@@ -0,0 +1,45 @@
|
||||
# set Java
|
||||
ARG JAVA_VERSION=21.0.6_7
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine as build
|
||||
|
||||
ARG HAWKBIT_APP=hawkbit-repository-jpa-init
|
||||
ARG HAWKBIT_VERSION=pass_as_buils_arg
|
||||
|
||||
ENV APP=${HAWKBIT_APP}
|
||||
ENV VERSION=${HAWKBIT_VERSION}
|
||||
|
||||
COPY KEY .
|
||||
|
||||
RUN set -x &&\
|
||||
apk add --no-cache --virtual build-dependencies gnupg unzip libressl wget &&\
|
||||
gpg --import KEY &&\
|
||||
wget -O ${APP}-${VERSION}.jar --no-verbose https://repo1.maven.org/maven2/org/eclipse/hawkbit/${APP}/${VERSION}/${APP}-${VERSION}.jar &&\
|
||||
wget -O ${APP}-${VERSION}.asc --no-verbose https://repo1.maven.org/maven2/org/eclipse/hawkbit/${APP}/${VERSION}/${APP}-${VERSION}.jar.asc &&\
|
||||
gpg --batch --verify ${APP}-${VERSION}.jar.asc ${APP}-${VERSION}.jar &&\
|
||||
rm /${APP}-${VERSION}.jar.asc /KEY &&\
|
||||
apk del build-dependencies
|
||||
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine
|
||||
|
||||
RUN addgroup -S hawkbit_group && adduser -D hawkbit -G hawkbit_group
|
||||
USER hawkbit
|
||||
|
||||
ENV BUILD_DIR=/opt/hawkbit_build
|
||||
COPY --from=build /${APP}-${VERSION}.jar ./
|
||||
|
||||
ARG X_MS=256m
|
||||
ENV X_MS=${X_MS}
|
||||
ARG X_MX=256m
|
||||
ENV X_MX=${X_MX}
|
||||
ARG XX_MAX_METASPACE_SIZE=1150m
|
||||
ENV XX_MAX_METASPACE_SIZE=${XX_MAX_METASPACE_SIZE}
|
||||
ARG XX_METASPACE_SIZE=115m
|
||||
ENV XX_METASPACE_SIZE=${XX_METASPACE_SIZE}
|
||||
ARG XSS=150K
|
||||
ENV XSS=${XSS}
|
||||
ARG GC=G1
|
||||
ENV GC=${GC}
|
||||
ARG AND_THEN="exit 0"
|
||||
ENV AND_THEN=${AND_THEN}
|
||||
|
||||
ENTRYPOINT ["sh", "-c", "java -classpath /${APP}-${VERSION}.jar ${JAVA_OPTS} -Xms${X_MS} -Xmx${X_MX} -XX:MaxMetaspaceSize=${XX_MAX_METASPACE_SIZE} -XX:MetaspaceSize=${XX_METASPACE_SIZE} -Xss${XSS} -XX:+Use${GC}GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError org.eclipse.hawkbit.repository.jpa.init.HawkbitFlywayDbInit ${@} && ${AND_THEN}"]
|
||||
32
docker/build/Dockerfile_dbinit_dev
Normal file
32
docker/build/Dockerfile_dbinit_dev
Normal file
@@ -0,0 +1,32 @@
|
||||
# set Java
|
||||
ARG JAVA_VERSION=21.0.6_7
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine as build
|
||||
|
||||
ARG HAWKBIT_APP=hawkbit-repository-jpa-init
|
||||
ARG HAWKBIT_VERSION=0-SNAPSHOT
|
||||
|
||||
ENV APP=${HAWKBIT_APP}
|
||||
ENV VERSION=${HAWKBIT_VERSION}
|
||||
|
||||
RUN addgroup -S hawkbit_group && adduser -D hawkbit -G hawkbit_group
|
||||
RUN mkdir -p /artifactrepo && chown -R hawkbit /artifactrepo
|
||||
USER hawkbit
|
||||
|
||||
COPY org/eclipse/hawkbit/${APP}/${VERSION}/${APP}-${VERSION}.jar /${APP}-${VERSION}.jar
|
||||
|
||||
ARG X_MS=256m
|
||||
ENV X_MS=${X_MS}
|
||||
ARG X_MX=256m
|
||||
ENV X_MX=${X_MX}
|
||||
ARG XX_MAX_METASPACE_SIZE=1150m
|
||||
ENV XX_MAX_METASPACE_SIZE=${XX_MAX_METASPACE_SIZE}
|
||||
ARG XX_METASPACE_SIZE=115m
|
||||
ENV XX_METASPACE_SIZE=${XX_METASPACE_SIZE}
|
||||
ARG XSS=150K
|
||||
ENV XSS=${XSS}
|
||||
ARG GC=G1
|
||||
ENV GC=${GC}
|
||||
ARG AND_THEN="exit 0"
|
||||
ENV AND_THEN=${AND_THEN}
|
||||
|
||||
ENTRYPOINT ["sh", "-c", "java -classpath /${APP}-${VERSION}.jar ${JAVA_OPTS} -Xms${X_MS} -Xmx${X_MX} -XX:MaxMetaspaceSize=${XX_MAX_METASPACE_SIZE} -XX:MetaspaceSize=${XX_METASPACE_SIZE} -Xss${XSS} -XX:+Use${GC}GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError org.eclipse.hawkbit.repository.jpa.init.HawkbitFlywayDbInit ${@} && ${AND_THEN}"]
|
||||
53
docker/build/Dockerfile_dev
Normal file
53
docker/build/Dockerfile_dev
Normal file
@@ -0,0 +1,53 @@
|
||||
# set Java
|
||||
ARG JAVA_VERSION=21.0.6_7
|
||||
# extracts spring layers from the app jar (to optimize boot)
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine as build
|
||||
|
||||
ARG HAWKBIT_APP=hawkbit-update-server
|
||||
ARG HAWKBIT_VERSION=0-SNAPSHOT
|
||||
|
||||
ENV BUILD_DIR=/opt/hawkbit_build
|
||||
ENV APP=${HAWKBIT_APP}
|
||||
ENV VERSION=${HAWKBIT_VERSION}
|
||||
|
||||
COPY org/eclipse/hawkbit/${APP}/${VERSION}/${APP}-${VERSION}.jar ${APP}-${VERSION}.jar
|
||||
|
||||
RUN set -x &&\
|
||||
mkdir -p ${BUILD_DIR} &&\
|
||||
cd ${BUILD_DIR} &&\
|
||||
java -Djarmode=tools -jar /${APP}-${VERSION}.jar extract --layers --launcher --destination . &&\
|
||||
rm /${APP}-${VERSION}.jar
|
||||
|
||||
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine
|
||||
|
||||
RUN addgroup -S hawkbit_group && adduser -D hawkbit -G hawkbit_group
|
||||
RUN mkdir -p /artifactrepo && chown -R hawkbit /artifactrepo
|
||||
USER hawkbit
|
||||
|
||||
ENV BUILD_DIR=/opt/hawkbit_build
|
||||
COPY --from=build ${BUILD_DIR}/dependencies/ ./
|
||||
COPY --from=build ${BUILD_DIR}/spring-boot-loader/ ./
|
||||
COPY --from=build ${BUILD_DIR}/snapshot-dependencies/ ./
|
||||
COPY --from=build ${BUILD_DIR}/application/ ./
|
||||
|
||||
VOLUME "/artifactrepo"
|
||||
|
||||
ARG CONTAINER_PORT=8080
|
||||
EXPOSE ${CONTAINER_PORT}
|
||||
|
||||
ARG PROFILES=h2
|
||||
ENV PROFILES=${PROFILES}
|
||||
ARG X_MS=768m
|
||||
ENV X_MS=${X_MS}
|
||||
ARG X_MX=768m
|
||||
ENV X_MX=${X_MX}
|
||||
ARG XX_MAX_METASPACE_SIZE=250m
|
||||
ENV XX_MAX_METASPACE_SIZE=${XX_MAX_METASPACE_SIZE}
|
||||
ARG XX_METASPACE_SIZE=250m
|
||||
ENV XX_METASPACE_SIZE=${XX_METASPACE_SIZE}
|
||||
ARG XSS=300K
|
||||
ENV XSS=${XSS}
|
||||
ARG GC=G1
|
||||
ENV GC=${GC}
|
||||
|
||||
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -Dspring.profiles.active=${PROFILES} -Xms${X_MS} -Xmx${X_MX} -XX:MaxMetaspaceSize=${XX_MAX_METASPACE_SIZE} -XX:MetaspaceSize=${XX_METASPACE_SIZE} -Xss${XSS} -XX:+Use${GC}GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError org.springframework.boot.loader.launch.JarLauncher ${@}"]
|
||||
74
docker/build/KEY
Normal file
74
docker/build/KEY
Normal file
@@ -0,0 +1,74 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
6rDlQqDuQF4/
|
||||
=YbPD
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
46
docker/build/README.md
Normal file
46
docker/build/README.md
Normal file
@@ -0,0 +1,46 @@
|
||||
hawkBit Docker Build
|
||||
===
|
||||
This directory contains docker files for building hawkBit docker with two build types:
|
||||
|
||||
* _release_ - uses officially released hawkBit versions, downloading them from https://repo1.maven.org
|
||||
* _development/dev_ - uses the local maven repository with built by developer (or just downloaded from any maven
|
||||
repository) hawkBit applications
|
||||
|
||||
## Build overview
|
||||
|
||||
Building images supports the following build arguments (i.e. ARG-s which could be passed using _--build-arg_):
|
||||
|
||||
* _JAVA_VERSION_ - **[OPTIONAL, if not set a default is used]** the Java version of the eclipse-temurin jre-alpine base
|
||||
image to be used.
|
||||
* _HAWKBIT_APP_ - **[OPTIONAL, if not set _hawkbit-update-server_ is used]** the application to be build. Currently,
|
||||
there is just _hawkbit-update-server_ but in future, if hawkBit is split to micro-services, there could be different
|
||||
micro-service apps.
|
||||
* _HAWKBIT_VERSION_ - **[OPTIONAL, if not set a default, should be the last officially released version, is used]** the
|
||||
application version
|
||||
* _CONTAINER_PORT_ - **[OPTIONAL, if not set 8080 is used]** on which the app opens the http server (if available)
|
||||
|
||||
Additionally, tge _development_ builds shall be started with docker build context the local maven repository
|
||||
|
||||
## Build docker images
|
||||
|
||||
Docker image could be build, for example, with (fixed version 0.4.1 is just an example):
|
||||
|
||||
```shell
|
||||
docker build --build-arg HAWKBIT_APP=hawkbit-update-server --build-arg HAWKBIT_VERSION=0.4.1 -t hawkbit_update_server:0.4.1 . -f Dockerfile
|
||||
```
|
||||
|
||||
or just by:
|
||||
|
||||
```shell
|
||||
docker build --build-arg HAWKBIT_VERSION=0.4.1 -t hawkbit_update_server:0.4.1 .
|
||||
```
|
||||
|
||||
having that docker uses by default _Dockerfile_ and the _hawkbit-update-server_ is the default _HAWKBIT_APP_.
|
||||
|
||||
To build standard development docker images, e.g. snapshot based, you could use something like:
|
||||
|
||||
```shell
|
||||
docker build -t hawkbit_update_server:0-SNAPSHOT -f Dockerfile_dev ~/.m2/repository
|
||||
```
|
||||
Note that here you have to use your maven repository containing the hawkBit app as docker build context, in the example
|
||||
case _~/.m2/repository_
|
||||
66
docker/build/build_dev.sh
Executable file
66
docker/build/build_dev.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/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}"
|
||||
|
||||
function build() {
|
||||
if [ "$1" == "hawkbit-repository-jpa-init" ]; then
|
||||
DOCKER_FILE="Dockerfile_dbinit_dev"
|
||||
else
|
||||
DOCKER_FILE="Dockerfile_dev"
|
||||
fi
|
||||
echo "docker file : ${DOCKER_FILE}"
|
||||
|
||||
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"
|
||||
# db init
|
||||
build "hawkbit-repository-jpa-init"
|
||||
else
|
||||
echo "Build $1"
|
||||
build $1
|
||||
fi
|
||||
Reference in New Issue
Block a user