Files
hawkbit/hawkbit-runtime/docker/docker_build/Dockerfile
Avgustin Marinov 6022009525 [#1740] Migrate to Spring Boot 3.3.0 (#1743)
1. Migrate Spring Boot to 3.3.0
2. Upgrade some other dependencies
3. Update Dockerfile-s regarding deprecated -Djarmode=layertools extract

Follow: [Spring Boot 3.3 Release Notes](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.3-Release-Notes)

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-06-06 10:43:11 +03:00

45 lines
1.7 KiB
Docker

# set Java
ARG JAVA_VERSION=17.0.11_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=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 &&\
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=tools -jar /${APP}.jar extract --layers --launcher --destination . &&\
rm ${APP}.jar ${APP}.jar.asc /KEY
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 CONTAINER_PORT=8080
ENV JAVA_OPTS="-Xms768m -Xmx768m -XX:MaxMetaspaceSize=250m -XX:MetaspaceSize=250m -Xss300K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError"
VOLUME "/artifactrepo"
EXPOSE ${CONTAINER_PORT}
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} org.springframework.boot.loader.launch.JarLauncher ${@}"]