Add MaridDB java client into runtimes (#2111)

And remove dedicated mysql image - as the driver is available into the default one

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2024-12-02 15:13:46 +02:00
committed by GitHub
parent 6f80038619
commit 43c4083d0d
15 changed files with 37 additions and 265 deletions

View File

@@ -12,8 +12,8 @@ maven/mavencentral/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.17.2
maven/mavencentral/com.fasterxml.jackson.module/jackson-module-parameter-names/2.17.2, Apache-2.0, approved, #15122 maven/mavencentral/com.fasterxml.jackson.module/jackson-module-parameter-names/2.17.2, Apache-2.0, approved, #15122
maven/mavencentral/com.fasterxml/classmate/1.7.0, Apache-2.0, approved, clearlydefined maven/mavencentral/com.fasterxml/classmate/1.7.0, Apache-2.0, approved, clearlydefined
maven/mavencentral/com.github.ben-manes.caffeine/caffeine/3.1.8, Apache-2.0, approved, clearlydefined maven/mavencentral/com.github.ben-manes.caffeine/caffeine/3.1.8, Apache-2.0, approved, clearlydefined
maven/mavencentral/com.github.stephenc.jcip/jcip-annotations/1.0-1, Apache-2.0, approved, CQ21949 maven/mavencentral/com.github.waffle/waffle-jna/3.3.0, MIT, approved, clearlydefined
maven/mavencentral/com.google.code.findbugs/jsr305/3.0.2, CC-BY-2.5, approved, #15220 maven/mavencentral/com.google.code.findbugs/jsr305/3.0.2, Apache-2.0 and CC-BY-2.5, approved, #15220
maven/mavencentral/com.google.code.gson/gson/2.10.1, Apache-2.0, approved, #6159 maven/mavencentral/com.google.code.gson/gson/2.10.1, Apache-2.0, approved, #6159
maven/mavencentral/com.google.errorprone/error_prone_annotations/2.21.1, Apache-2.0, approved, #9834 maven/mavencentral/com.google.errorprone/error_prone_annotations/2.21.1, Apache-2.0, approved, #9834
maven/mavencentral/com.h2database/h2/2.2.224, (EPL-1.0 OR MPL-2.0) AND (LGPL-3.0-or-later OR EPL-1.0 OR MPL-2.0), approved, #9322 maven/mavencentral/com.h2database/h2/2.2.224, (EPL-1.0 OR MPL-2.0) AND (LGPL-3.0-or-later OR EPL-1.0 OR MPL-2.0), approved, #9322
@@ -21,10 +21,6 @@ maven/mavencentral/com.helger.commons/ph-commons/11.1.0, Apache-2.0, approved, #
maven/mavencentral/com.helger/ph-css/7.0.1, Apache-2.0, approved, #12134 maven/mavencentral/com.helger/ph-css/7.0.1, Apache-2.0, approved, #12134
maven/mavencentral/com.jayway.jsonpath/json-path/2.9.0, Apache-2.0, approved, clearlydefined maven/mavencentral/com.jayway.jsonpath/json-path/2.9.0, Apache-2.0, approved, clearlydefined
maven/mavencentral/com.microsoft.sqlserver/mssql-jdbc/12.6.4.jre11, MIT, approved, clearlydefined maven/mavencentral/com.microsoft.sqlserver/mssql-jdbc/12.6.4.jre11, MIT, approved, clearlydefined
maven/mavencentral/com.nimbusds/content-type/2.2, Apache-2.0, approved, clearlydefined
maven/mavencentral/com.nimbusds/lang-tag/1.7, Apache-2.0, approved, clearlydefined
maven/mavencentral/com.nimbusds/nimbus-jose-jwt/9.37.3, Apache-2.0, approved, #11701
maven/mavencentral/com.nimbusds/oauth2-oidc-sdk/9.43.4, Apache-2.0, approved, clearlydefined
maven/mavencentral/com.rabbitmq/amqp-client/5.21.0, Apache-2.0 OR GPL-2.0-only OR MPL-2.0, approved, #16484 maven/mavencentral/com.rabbitmq/amqp-client/5.21.0, Apache-2.0 OR GPL-2.0-only OR MPL-2.0, approved, #16484
maven/mavencentral/com.vaadin.external.atmosphere/atmosphere-runtime/3.0.4.slf4jvaadin1, Apache-2.0, approved, #12113 maven/mavencentral/com.vaadin.external.atmosphere/atmosphere-runtime/3.0.4.slf4jvaadin1, Apache-2.0, approved, #12113
maven/mavencentral/com.vaadin.external.gwt/gwt-elemental/2.8.2.vaadin2, Apache-2.0, approved, clearlydefined maven/mavencentral/com.vaadin.external.gwt/gwt-elemental/2.8.2.vaadin2, Apache-2.0, approved, clearlydefined
@@ -128,9 +124,9 @@ maven/mavencentral/jakarta.validation/jakarta.validation-api/3.0.2, Apache-2.0,
maven/mavencentral/jakarta.xml.bind/jakarta.xml.bind-api/4.0.2, BSD-3-Clause, approved, ee4j.jaxb maven/mavencentral/jakarta.xml.bind/jakarta.xml.bind-api/4.0.2, BSD-3-Clause, approved, ee4j.jaxb
maven/mavencentral/javax.activation/javax.activation-api/1.2.0, (CDDL-1.1 OR GPL-2.0 WITH Classpath-exception-2.0) AND Apache-2.0, approved, CQ18740 maven/mavencentral/javax.activation/javax.activation-api/1.2.0, (CDDL-1.1 OR GPL-2.0 WITH Classpath-exception-2.0) AND Apache-2.0, approved, CQ18740
maven/mavencentral/javax.xml.bind/jaxb-api/2.3.1, CDDL-1.1 OR GPL-2.0-only WITH Classpath-exception-2.0, approved, CQ16911 maven/mavencentral/javax.xml.bind/jaxb-api/2.3.1, CDDL-1.1 OR GPL-2.0-only WITH Classpath-exception-2.0, approved, CQ16911
maven/mavencentral/net.java.dev.jna/jna-platform/5.13.0, Apache-2.0 OR LGPL-2.1-or-later, approved, #6707
maven/mavencentral/net.java.dev.jna/jna/5.13.0, Apache-2.0 AND LGPL-2.1-or-later, approved, #15196
maven/mavencentral/net.jodah/typetools/0.6.2, Apache-2.0, approved, clearlydefined maven/mavencentral/net.jodah/typetools/0.6.2, Apache-2.0, approved, clearlydefined
maven/mavencentral/net.minidev/accessors-smart/2.5.1, Apache-2.0, approved, clearlydefined
maven/mavencentral/net.minidev/json-smart/2.5.1, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.antlr/ST4/4.3.3, BSD-3-Clause, approved, #1495 maven/mavencentral/org.antlr/ST4/4.3.3, BSD-3-Clause, approved, #1495
maven/mavencentral/org.antlr/antlr-runtime/3.5.2, BSD-3-Clause, approved, #8916 maven/mavencentral/org.antlr/antlr-runtime/3.5.2, BSD-3-Clause, approved, #8916
maven/mavencentral/org.antlr/antlr4-runtime/4.13.0, BSD-3-Clause, approved, #10767 maven/mavencentral/org.antlr/antlr4-runtime/4.13.0, BSD-3-Clause, approved, #10767
@@ -155,7 +151,9 @@ maven/mavencentral/org.bouncycastle/bcprov-jdk18on/1.78, MIT AND CC0-1.0, approv
maven/mavencentral/org.checkerframework/checker-qual/3.37.0, MIT, approved, clearlydefined maven/mavencentral/org.checkerframework/checker-qual/3.37.0, MIT, approved, clearlydefined
maven/mavencentral/org.checkerframework/checker-qual/3.42.0, MIT, approved, clearlydefined maven/mavencentral/org.checkerframework/checker-qual/3.42.0, MIT, approved, clearlydefined
maven/mavencentral/org.flywaydb/flyway-core/10.10.0, Apache-2.0, approved, #14163 maven/mavencentral/org.flywaydb/flyway-core/10.10.0, Apache-2.0, approved, #14163
maven/mavencentral/org.flywaydb/flyway-database-postgresql/10.10.0, Apache-2.0, approved, #14158
maven/mavencentral/org.flywaydb/flyway-mysql/10.10.0, Apache-2.0, approved, #16487 maven/mavencentral/org.flywaydb/flyway-mysql/10.10.0, Apache-2.0, approved, #16487
maven/mavencentral/org.flywaydb/flyway-sqlserver/10.10.0, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.hibernate.orm/hibernate-core/6.5.3.Final, LGPL-2.1-only AND (EPL-2.0 OR BSD-3-Clause) AND LGPL-2.1-or-later AND MIT, approved, #15118 maven/mavencentral/org.hibernate.orm/hibernate-core/6.5.3.Final, LGPL-2.1-only AND (EPL-2.0 OR BSD-3-Clause) AND LGPL-2.1-or-later AND MIT, approved, #15118
maven/mavencentral/org.hibernate.validator/hibernate-validator/8.0.1.Final, Apache-2.0, approved, clearlydefined maven/mavencentral/org.hibernate.validator/hibernate-validator/8.0.1.Final, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.javassist/javassist/3.28.0-GA, Apache-2.0 OR LGPL-2.1-or-later OR MPL-1.1, approved, #327 maven/mavencentral/org.javassist/javassist/3.28.0-GA, Apache-2.0 OR LGPL-2.1-or-later OR MPL-1.1, approved, #327
@@ -167,11 +165,13 @@ maven/mavencentral/org.jetbrains/annotations/13.0, Apache-2.0, approved, clearly
maven/mavencentral/org.jline/jline/3.24.1, BSD-3-Clause AND Apache-2.0, approved, #13732 maven/mavencentral/org.jline/jline/3.24.1, BSD-3-Clause AND Apache-2.0, approved, #13732
maven/mavencentral/org.json/json/20240303, LicenseRef-Public-Domain, approved, #16490 maven/mavencentral/org.json/json/20240303, LicenseRef-Public-Domain, approved, #16490
maven/mavencentral/org.jsoup/jsoup/1.18.1, MIT AND Apache-2.0, approved, #15683 maven/mavencentral/org.jsoup/jsoup/1.18.1, MIT AND Apache-2.0, approved, #15683
maven/mavencentral/org.mariadb.jdbc/mariadb-java-client/3.3.3, LGPL-2.1-only AND LGPL-2.1-or-later AND CC0-1.0, approved, #17584
maven/mavencentral/org.ow2.asm/asm/9.6, BSD-3-Clause, approved, #10776 maven/mavencentral/org.ow2.asm/asm/9.6, BSD-3-Clause, approved, #10776
maven/mavencentral/org.postgresql/postgresql/42.7.4, BSD-2-Clause AND Apache-2.0, approved, #11681 maven/mavencentral/org.postgresql/postgresql/42.7.4, BSD-2-Clause AND Apache-2.0, approved, #11681
maven/mavencentral/org.projectlombok/lombok/1.18.34, MIT, approved, #15192 maven/mavencentral/org.projectlombok/lombok/1.18.34, MIT, approved, #15192
maven/mavencentral/org.reactivestreams/reactive-streams/1.0.4, CC0-1.0, approved, CQ16332 maven/mavencentral/org.reactivestreams/reactive-streams/1.0.4, CC0-1.0, approved, CQ16332
maven/mavencentral/org.reflections/reflections/0.10.2, Apache-2.0 AND WTFPL, approved, clearlydefined maven/mavencentral/org.reflections/reflections/0.10.2, Apache-2.0 AND WTFPL, approved, clearlydefined
maven/mavencentral/org.slf4j/jcl-over-slf4j/2.0.16, MIT AND Apache-2.0, approved, #11889
maven/mavencentral/org.slf4j/jul-to-slf4j/2.0.16, MIT, approved, #7698 maven/mavencentral/org.slf4j/jul-to-slf4j/2.0.16, MIT, approved, #7698
maven/mavencentral/org.slf4j/slf4j-api/2.0.16, MIT, approved, #5915 maven/mavencentral/org.slf4j/slf4j-api/2.0.16, MIT, approved, #5915
maven/mavencentral/org.springdoc/springdoc-openapi-starter-common/2.6.0, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springdoc/springdoc-openapi-starter-common/2.6.0, Apache-2.0, approved, clearlydefined
@@ -187,8 +187,6 @@ maven/mavencentral/org.springframework.boot/spring-boot-starter-hateoas/3.3.5, A
maven/mavencentral/org.springframework.boot/spring-boot-starter-jdbc/3.3.5, Apache-2.0, approved, #16885 maven/mavencentral/org.springframework.boot/spring-boot-starter-jdbc/3.3.5, Apache-2.0, approved, #16885
maven/mavencentral/org.springframework.boot/spring-boot-starter-json/3.3.5, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.boot/spring-boot-starter-json/3.3.5, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.springframework.boot/spring-boot-starter-logging/3.3.5, Apache-2.0, approved, #16886 maven/mavencentral/org.springframework.boot/spring-boot-starter-logging/3.3.5, Apache-2.0, approved, #16886
maven/mavencentral/org.springframework.boot/spring-boot-starter-oauth2-client/3.3.5, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.springframework.boot/spring-boot-starter-oauth2-resource-server/3.3.5, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.springframework.boot/spring-boot-starter-reactor-netty/3.3.5, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.boot/spring-boot-starter-reactor-netty/3.3.5, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.springframework.boot/spring-boot-starter-security/3.3.5, Apache-2.0, approved, #16894 maven/mavencentral/org.springframework.boot/spring-boot-starter-security/3.3.5, Apache-2.0, approved, #16894
maven/mavencentral/org.springframework.boot/spring-boot-starter-tomcat/3.3.5, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.boot/spring-boot-starter-tomcat/3.3.5, Apache-2.0, approved, clearlydefined
@@ -221,10 +219,7 @@ maven/mavencentral/org.springframework.security/spring-security-aspects/6.3.4, A
maven/mavencentral/org.springframework.security/spring-security-config/6.3.4, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.security/spring-security-config/6.3.4, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.springframework.security/spring-security-core/6.3.4, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.security/spring-security-core/6.3.4, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.springframework.security/spring-security-crypto/6.3.4, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.security/spring-security-crypto/6.3.4, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.springframework.security/spring-security-oauth2-client/6.3.4, Apache-2.0, approved, #16891
maven/mavencentral/org.springframework.security/spring-security-oauth2-core/6.3.4, Apache-2.0, approved, #16892 maven/mavencentral/org.springframework.security/spring-security-oauth2-core/6.3.4, Apache-2.0, approved, #16892
maven/mavencentral/org.springframework.security/spring-security-oauth2-jose/6.3.4, Apache-2.0, approved, #16884
maven/mavencentral/org.springframework.security/spring-security-oauth2-resource-server/6.3.4, Apache-2.0, approved, #16888
maven/mavencentral/org.springframework.security/spring-security-rsa/1.1.3, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.security/spring-security-rsa/1.1.3, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.springframework.security/spring-security-web/6.3.4, Apache-2.0, approved, clearlydefined maven/mavencentral/org.springframework.security/spring-security-web/6.3.4, Apache-2.0, approved, clearlydefined
maven/mavencentral/org.springframework.shell/spring-shell-autoconfigure/3.1.5, Apache-2.0, approved, #13759 maven/mavencentral/org.springframework.shell/spring-shell-autoconfigure/3.1.5, Apache-2.0, approved, #13759

View File

@@ -18,7 +18,7 @@ services:
# HawkBit DDI # HawkBit DDI
# --------------------- # ---------------------
hawkbit-ddi: hawkbit-ddi:
image: "hawkbit/hawkbit-ddi-server:latest-mysql" image: "hawkbit/hawkbit-ddi-server:latest"
environment: environment:
- 'PROFILES=mysql' - 'PROFILES=mysql'
- 'SPRING_DATASOURCE_URL=jdbc:mariadb://mysql:3306/hawkbit' - 'SPRING_DATASOURCE_URL=jdbc:mariadb://mysql:3306/hawkbit'
@@ -39,7 +39,7 @@ services:
# HawkBit DMF # HawkBit DMF
# --------------------- # ---------------------
hawkbit-dmf: hawkbit-dmf:
image: "hawkbit/hawkbit-dmf-server:latest-mysql" image: "hawkbit/hawkbit-dmf-server:latest"
environment: environment:
- 'PROFILES=mysql' - 'PROFILES=mysql'
- 'SPRING_DATASOURCE_URL=jdbc:mariadb://mysql:3306/hawkbit' - 'SPRING_DATASOURCE_URL=jdbc:mariadb://mysql:3306/hawkbit'
@@ -58,7 +58,7 @@ services:
# HawkBit MGMT # HawkBit MGMT
# --------------------- # ---------------------
hawkbit-mgmt: hawkbit-mgmt:
image: "hawkbit/hawkbit-mgmt-server:latest-mysql" image: "hawkbit/hawkbit-mgmt-server:latest"
environment: environment:
- 'PROFILES=mysql' - 'PROFILES=mysql'
- 'SPRING_DATASOURCE_URL=jdbc:mariadb://mysql:3306/hawkbit' - 'SPRING_DATASOURCE_URL=jdbc:mariadb://mysql:3306/hawkbit'

View File

@@ -18,7 +18,7 @@ services:
# HawkBit Simple UI # HawkBit Simple UI
# --------------------- # ---------------------
hawkbit-simple-ui: hawkbit-simple-ui:
image: "hawkbit/hawkbit-simple-ui:latest-mysql" image: "hawkbit/hawkbit-simple-ui:latest"
environment: environment:
- 'SPRING_APPLICATION_JSON={"hawkbit.server.mgmtUrl": "http://hawkbit-mgmt:8080"}' - 'SPRING_APPLICATION_JSON={"hawkbit.server.mgmtUrl": "http://hawkbit-mgmt:8080"}'
restart: always restart: always

View File

@@ -18,7 +18,7 @@ services:
# HawkBit service # HawkBit service
# --------------------- # ---------------------
hawkbit: hawkbit:
image: "hawkbit/hawkbit-update-server:latest-mysql" image: "hawkbit/hawkbit-update-server:latest"
environment: environment:
- 'PROFILES=mysql' - 'PROFILES=mysql'
- 'SPRING_DATASOURCE_URL=jdbc:mariadb://mysql:3306/hawkbit' - 'SPRING_DATASOURCE_URL=jdbc:mariadb://mysql:3306/hawkbit'

View File

@@ -18,7 +18,7 @@ services:
# HawkBit Simple UI service # HawkBit Simple UI service
# --------------------- # ---------------------
hawkbit-simple-ui: hawkbit-simple-ui:
image: "hawkbit/hawkbit-simple-ui:latest-mysql" image: "hawkbit/hawkbit-simple-ui:latest"
environment: environment:
- 'SPRING_APPLICATION_JSON={"hawkbit.server.mgmtUrl": "http://hawkbit:8080"}' - 'SPRING_APPLICATION_JSON={"hawkbit.server.mgmtUrl": "http://hawkbit:8080"}'
restart: always restart: always

View File

@@ -1,72 +0,0 @@
# set Java
ARG JAVA_VERSION=17.0.13_11
# 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 &&\
mkdir -p ${BUILD_DIR} &&\
cd ${BUILD_DIR} &&\
java -Djarmode=tools -jar /${APP}.jar extract --layers --launcher --destination . &&\
rm /${APP}.jar
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 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/ ./
ARG MARIADB_DRIVER_VERSION=3.1.4
COPY --from=build ${BUILD_DIR}/mariadb-java-client-${MARIADB_DRIVER_VERSION}.jar ./BOOT-INF/lib/
VOLUME "/artifactrepo"
ARG CONTAINER_PORT=8080
EXPOSE ${CONTAINER_PORT}
ARG PROFILES=mysql
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 ${@}"]

View File

@@ -1,56 +0,0 @@
# set Java
ARG JAVA_VERSION=17.0.13_11
# 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/ ./
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/
VOLUME "/artifactrepo"
ARG CONTAINER_PORT=8080
EXPOSE ${CONTAINER_PORT}
ARG PROFILES=mysql
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 ${@}"]

View File

@@ -1,40 +0,0 @@
-----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

@@ -1,14 +1,6 @@
hawkBit Docker Build hawkBit Docker Build
=== ===
This directory contains docker files for building both hawkBit docker flavours: This directory contains docker files for building hawkBit docker with two build types:
* _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:
* _release_ - uses officially released hawkBit versions, downloading them from https://repo1.maven.org * _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 * _development/dev_ - uses the local maven repository with built by developer (or just downloaded from any maven
@@ -26,14 +18,12 @@ Building images supports the following build arguments (i.e. ARG-s which could b
* _HAWKBIT_VERSION_ - **[OPTIONAL, if not set a default, should be the last officially released version, is used]** the * _HAWKBIT_VERSION_ - **[OPTIONAL, if not set a default, should be the last officially released version, is used]** the
application version application version
* _CONTAINER_PORT_ - **[OPTIONAL, if not set 8080 is used]** on which the app opens the http server (if available) * _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 Additionally, tge _development_ builds shall be started with docker build context the local maven repository
## Build standard ## Build docker images
Standard flavour could be build, for example, with (fixed version 0.4.1 is just an example): Docker image could be build, for example, with (fixed version 0.4.1 is just an example):
```shell ```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 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
@@ -52,31 +42,5 @@ To build standard development docker images, e.g. snapshot based, you could use
```shell ```shell
docker build -t hawkbit_update_server:0-SNAPSHOT -f Dockerfile_dev ~/.m2/repository 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_
## Build mysql
Mysql flavour could be build, for example, with:
```shell
docker build --build-arg HAWKBIT_APP=hawkbit-update-server --build-arg HAWKBIT_VERSION=0.4.1 -t hawkbit_update_server:0.4.1-mysql . -f Dockerfile-mysql
```
or just by:
```shell
docker build --build-arg -t hawkbit_update_server:0.4.1-mysql --build-arg HAWKBIT_VERSION=0.4.1 . -f Dockerfile-mysql
```
having that the _hawkbit-update-server_ is the default _HAWKBIT_APP_.
To build development mysql docker images, e.g. snapshot based, you could use something like:
```shell
docker build -t hawkbit_update_server: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 Note that here you have to use your maven repository containing the hawkBit app as docker build context, in the example
case _~/.m2/repository_ case _~/.m2/repository_

View File

@@ -16,7 +16,6 @@ set -xe
# -r <local maven repository> the local maven repository the already built application jars are located into # -r <local maven repository> the local maven repository the already built application jars are located into
VERSION=0-SNAPSHOT VERSION=0-SNAPSHOT
FLAVOUR="standard"
MVN_REPO=~/.m2/repository MVN_REPO=~/.m2/repository
while getopts v:f:r: option while getopts v:f:r: option
@@ -24,33 +23,24 @@ do
case "${option}" case "${option}"
in in
v)VERSION=${OPTARG};; v)VERSION=${OPTARG};;
f)FLAVOUR=${OPTARG};;
r)MVN_REPO=${OPTARG};; r)MVN_REPO=${OPTARG};;
esac esac
done done
echo "hawkBit version : ${VERSION}" echo "hawkBit version : ${VERSION}"
echo "docker image flavour : ${FLAVOUR}"
echo "maven repository : ${MVN_REPO}" echo "maven repository : ${MVN_REPO}"
if [ ${FLAVOUR} == "mysql" ] DOCKER_FILE="Dockerfile_dev"
then
DOCKER_FILE="Dockerfile_dev-mysql"
TAG_SUFFIX="-mysql"
else
DOCKER_FILE="Dockerfile_dev"
TAG_SUFFIX=""
fi
echo "docker file : ${DOCKER_FILE}" echo "docker file : ${DOCKER_FILE}"
function build() { function build() {
docker build -t hawkbit/$1:${VERSION}${TAG_SUFFIX} -t hawkbit/$1:latest${TAG_SUFFIX} --build-arg HAWKBIT_APP=$1 --build-arg HAWKBIT_VERSION=${VERSION} -f ${DOCKER_FILE} "${MVN_REPO}" 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-ddi-server"
build "hawkbit-dmf-server" build "hawkbit-dmf-server"
build "hawkbit-mgmt-server" build "hawkbit-mgmt-server"
build "hawkbit-simple-ui" build "hawkbit-simple-ui"
# monolith
build "hawkbit-update-server" build "hawkbit-update-server"

View File

@@ -46,6 +46,10 @@
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.microsoft.sqlserver</groupId> <groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId> <artifactId>mssql-jdbc</artifactId>
@@ -73,11 +77,6 @@
<version>${project.version}</version> <version>${project.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <!-- if run against mysql -->
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@@ -46,6 +46,10 @@
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.microsoft.sqlserver</groupId> <groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId> <artifactId>mssql-jdbc</artifactId>

View File

@@ -46,6 +46,10 @@
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.microsoft.sqlserver</groupId> <groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId> <artifactId>mssql-jdbc</artifactId>
@@ -73,11 +77,6 @@
<version>${project.version}</version> <version>${project.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <!-- if run against mysql -->
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@@ -41,6 +41,10 @@
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.microsoft.sqlserver</groupId> <groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId> <artifactId>mssql-jdbc</artifactId>
@@ -67,11 +71,6 @@
<artifactId>spring-security-test</artifactId> <artifactId>spring-security-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<scope>test</scope>
</dependency>
<dependency> <dependency>
<groupId>org.eclipse.hawkbit</groupId> <groupId>org.eclipse.hawkbit</groupId>
<artifactId>hawkbit-repository-test</artifactId> <artifactId>hawkbit-repository-test</artifactId>

View File

@@ -35,16 +35,6 @@ This guide describes a target architecture that is more like one that you will e
As mentioned you can create your own application with hawkBit inside or adapt the existing example app. The second As mentioned you can create your own application with hawkBit inside or adapt the existing example app. The second
option will be shown here. option will be shown here.
### Set MariaDB dependency to compile in the [update server POM](https://github.com/eclipse-hawkbit/hawkbit/blob/master/hawkbit-monolith/hawkbit-update-server/pom.xml)
```xml
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<scope>compile</scope>
</dependency>
```
### Configure MariaDB/MySQL connection settings. ### Configure MariaDB/MySQL connection settings.
For this you can either edit the existing _application.properties_ or create For this you can either edit the existing _application.properties_ or create