2023-11-27 15:51:04 +02:00
|
|
|
# set Java
|
2024-11-04 11:04:09 +02:00
|
|
|
ARG JAVA_VERSION=17.0.13_11
|
2023-11-27 15:51:04 +02:00
|
|
|
# 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
|
2024-01-18 16:37:38 +02:00
|
|
|
ARG HAWKBIT_VERSION=pass_as_buils_arg
|
2023-11-27 15:51:04 +02:00
|
|
|
|
|
|
|
|
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 &&\
|
2024-10-30 17:18:08 +02:00
|
|
|
rm /${APP}.jar.asc /KEY &&\
|
|
|
|
|
mkdir -p ${BUILD_DIR} &&\
|
|
|
|
|
cd ${BUILD_DIR} &&\
|
2024-06-06 10:43:11 +03:00
|
|
|
java -Djarmode=tools -jar /${APP}.jar extract --layers --launcher --destination . &&\
|
2024-10-30 17:18:08 +02:00
|
|
|
rm /${APP}.jar
|
2023-11-27 15:51:04 +02:00
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
2023-12-04 10:52:19 +02:00
|
|
|
RUN addgroup -S hawkbit_group && adduser -D hawkbit -G hawkbit_group
|
|
|
|
|
RUN mkdir -p /artifactrepo && chown -R hawkbit /artifactrepo
|
|
|
|
|
USER hawkbit
|
|
|
|
|
|
2023-11-27 15:51:04 +02:00
|
|
|
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
|
2023-11-27 17:32:08 +02:00
|
|
|
COPY --from=build ${BUILD_DIR}/mariadb-java-client-${MARIADB_DRIVER_VERSION}.jar ./BOOT-INF/lib/
|
2023-11-27 15:51:04 +02:00
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
|
2023-12-01 17:44:41 +02:00
|
|
|
VOLUME "/artifactrepo"
|
2023-11-27 15:51:04 +02:00
|
|
|
EXPOSE ${CONTAINER_PORT}
|
2024-01-22 09:52:12 +02:00
|
|
|
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} org.springframework.boot.loader.launch.JarLauncher ${@}"]
|