Adding dev docker builds (#1489)

Adds option to build docker images using locally built hawkBit apps. This allows for instance building images from snapshots.

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2023-11-27 17:32:08 +02:00
committed by GitHub
parent 51255feb1b
commit a015a23615
8 changed files with 130 additions and 25 deletions

View File

@@ -0,0 +1,42 @@
# set Java
ARG JAVA_VERSION=17.0.9_9
# 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.3.0
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 &&\
mkdir -p ${BUILD_DIR} &&\
cd ${BUILD_DIR} &&\
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 &&\
apk del build-dependencies &&\
java -Djarmode=layertools -jar ${APP}.jar extract --destination . &&\
rm ${APP}.jar ${APP}.jar.asc /KEY
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine
RUN addgroup -S rollouts && adduser -D sp -G rollouts
USER sp
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/ ./
ARG CONTAINER_PORT=8080
ENV JAVA_OPTS="-Xms768m -Xmx768m -XX:MaxMetaspaceSize=250m -XX:MetaspaceSize=250m -Xss300K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError"
EXPOSE ${CONTAINER_PORT}
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} org.springframework.boot.loader.JarLauncher ${@}"]

View File

@@ -0,0 +1,54 @@
# set Java
ARG JAVA_VERSION=17.0.9_9
# 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.3.0
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 &&\
mkdir -p ${BUILD_DIR} &&\
cd ${BUILD_DIR} &&\
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 &&\
java -Djarmode=layertools -jar ${APP}.jar extract --destination . &&\
rm ${APP}.jar ${APP}.jar.asc /KEY
ARG MARIADB_DRIVER_VERSION=3.1.4
COPY KEY-mysql .
RUN set -x &&\
gpg --import KEY-mysql &&\
wget -O ${BUILD_DIR}/mariadb-java-client-${MARIADB_DRIVER_VERSION}.jar --no-verbose https://downloads.mariadb.com/Connectors/java/connector-java-${MARIADB_DRIVER_VERSION}/mariadb-java-client-${MARIADB_DRIVER_VERSION}.jar &&\
wget -O ${BUILD_DIR}/mariadb-java-client-${MARIADB_DRIVER_VERSION}.jar.asc --no-verbose https://downloads.mariadb.com/Connectors/java/connector-java-${MARIADB_DRIVER_VERSION}/mariadb-java-client-${MARIADB_DRIVER_VERSION}.jar.asc &&\
gpg --verify --batch ${BUILD_DIR}/mariadb-java-client-${MARIADB_DRIVER_VERSION}.jar.asc ${BUILD_DIR}/mariadb-java-client-${MARIADB_DRIVER_VERSION}.jar &&\
apk del build-dependencies &&\
rm ${BUILD_DIR}/mariadb-java-client-${MARIADB_DRIVER_VERSION}.jar.asc /KEY-mysql
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine
RUN addgroup -S rollouts && adduser -D sp -G rollouts
USER sp
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/ ./
ARG MARIADB_DRIVER_VERSION=3.1.4
COPY --from=build ${BUILD_DIR}/mariadb-java-client-${MARIADB_DRIVER_VERSION}.jar ./BOOT-INF/lib/
ARG CONTAINER_PORT=8080
ENV JAVA_OPTS="-Dspring.profiles.active=mysql -Xms768m -Xmx768m -XX:MaxMetaspaceSize=250m -XX:MetaspaceSize=250m -Xss300K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError"
EXPOSE ${CONTAINER_PORT}
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} org.springframework.boot.loader.JarLauncher ${@}"]

View File

@@ -0,0 +1,36 @@
# set Java
ARG JAVA_VERSION=17.0.9_9
# 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.3.0
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=layertools -jar /${APP}-${VERSION}.jar extract --destination . &&\
rm /${APP}-${VERSION}.jar
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine
RUN addgroup -S rollouts && adduser -D sp -G rollouts
USER sp
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/ ./
ARG CONTAINER_PORT=8080
ENV JAVA_OPTS="-Xms768m -Xmx768m -XX:MaxMetaspaceSize=250m -XX:MetaspaceSize=250m -Xss300K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError"
EXPOSE ${CONTAINER_PORT}
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} org.springframework.boot.loader.JarLauncher ${@}"]

View File

@@ -0,0 +1,38 @@
# set Java
ARG JAVA_VERSION=17.0.9_9
# 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.3.0
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=layertools -jar /${APP}-${VERSION}.jar extract --destination . &&\
rm /${APP}-${VERSION}.jar
FROM eclipse-temurin:${JAVA_VERSION}-jre-alpine
RUN addgroup -S rollouts && adduser -D sp -G rollouts
USER sp
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/ ./
ARG MARIADB_DRIVER_VERSION=3.1.4
COPY org/mariadb/jdbc/mariadb-java-client/${MARIADB_DRIVER_VERSION}/mariadb-java-client-${MARIADB_DRIVER_VERSION}.jar ./BOOT-INF/lib/
ARG CONTAINER_PORT=8080
ENV JAVA_OPTS="-Dspring.profiles.active=mysql -Xms768m -Xmx768m -XX:MaxMetaspaceSize=250m -XX:MetaspaceSize=250m -Xss300K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError"
EXPOSE ${CONTAINER_PORT}
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} org.springframework.boot.loader.JarLauncher ${@}"]

View File

@@ -0,0 +1,79 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.6
Comment: Hostname: pgp.mit.edu
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
LrdPYOGtAA==
=a0Oj
-----END PGP PUBLIC KEY BLOCK-----

View File

@@ -0,0 +1,40 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.6
Comment: Hostname: pgp.mit.edu
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
FsnHsQksxFhCqGYdUKyfRsobs/Ns
=ovQp
-----END PGP PUBLIC KEY BLOCK-----

View File

@@ -0,0 +1,55 @@
hawkBit Docker Build
===
This directory contains docker files for building both hawkBit docker flavours:
* _standard_ - hawkBit images without mysql driver
* _mysql_ - with MariaDB Java connector with support for MySQL.
Both flavours of are almost the same, just mysql has in addition a MariaDB Java connector and is started, by default, with mysql Spring profile.
For every flavour there are two build types:
* _default_ - 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)
* _MARIADB_DRIVER_VERSION_ (mysql flavours only!) - **[OPTIONAL, if not set a default is used]** the version of MariaDB connector to be used
Additionally, tge _development_ builds shall be started with docker build context the local maven repository
## Build standard
Standard flavour could be build, for example, with:
```shell
docker build --build-arg HAWKBIT_APP=hawkbit-update-server -t hawkbit_update_server:0.3.0 . -f Dockerfile
```
or just by:
```shell
docker build -t hawkbit_update_server:0.3.0 .
```
having that docker uses by default _Dockerfile_ and the _hawkbit-update-server_ is the default _HAWKBIT_APP_.
To build development docker images, e.g. snapshot based, you could use something like:
```shell
docker build -t hawkbit_update_server:0.4.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_
## Build mysql
Mysql flavour could be build, for example, with:
```shell
docker build --build-arg HAWKBIT_APP=hawkbit-update-server -t hawkbit_update_server:0.3.0-mysql . -f Dockerfile-mysql
```
or just by:
```shell
docker build --build-arg -t hawkbit_update_server:0.3.0-mysql . -f Dockerfile-mysql
```
having that the _hawkbit-update-server_ is the default _HAWKBIT_APP_.
To build development docker images, e.g. snapshot based, you could use something like:
```shell
docker build -t hawkbit_update_server:0.4.0-SNAPSHOT-mysql -f Dockerfile_dev-mysql ~/.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_