1
+ FROM bellsoft/liberica-openjre-debian:23.0.1-13-cds AS builder
2
+ WORKDIR /builder
3
+
4
+ ARG argBasedVersion="1.10.0"
5
+
6
+ COPY --chown=wrongsecrets target/wrongsecrets-${argBasedVersion}-SNAPSHOT.jar application.jar
7
+ RUN java -Djarmode=tools -jar application.jar extract --layers --destination extracted
8
+
1
9
FROM eclipse-temurin:23.0.1_11-jre-alpine
10
+ WORKDIR /application
2
11
3
12
ARG argBasedPassword="default"
4
- ARG argBasedVersion="1.10.0"
5
13
ARG spring_profile=""
6
14
ENV SPRING_PROFILES_ACTIVE=$spring_profile
7
15
ENV ARG_BASED_PASSWORD=$argBasedPassword
@@ -17,14 +25,34 @@ RUN echo "$argBasedPassword"
17
25
18
26
RUN apk add --no-cache libstdc++ icu-libs
19
27
20
- RUN adduser -u 2000 -D wrongsecrets
21
- USER wrongsecrets
22
-
23
- COPY --chown=wrongsecrets target/wrongsecrets-${argBasedVersion}-SNAPSHOT.jar /application.jar
24
28
COPY --chown=wrongsecrets .github/scripts/ /var/tmp/helpers
25
29
COPY --chown=wrongsecrets .github/scripts/.bash_history /home/wrongsecrets/
26
30
COPY --chown=wrongsecrets src/main/resources/executables/*linux-musl* /home/wrongsecrets/
27
31
COPY --chown=wrongsecrets src/test/resources/alibabacreds.kdbx /var/tmp/helpers
28
32
COPY --chown=wrongsecrets src/test/resources/RSAprivatekey.pem /var/tmp/helpers/
33
+
34
+ COPY --from=builder /builder/extracted/dependencies/ ./
35
+ COPY --from=builder /builder/extracted/spring-boot-loader/ ./
36
+ COPY --from=builder /builder/extracted/snapshot-dependencies/ ./
37
+ COPY --from=builder /builder/extracted/application/ ./
38
+
39
+
40
+ # Mock the service account token for CDS profile generation
41
+ RUN mkdir -p /var/run/secrets/kubernetes.io/serviceaccount && \
42
+ echo "mock-token" > /var/run/secrets/kubernetes.io/serviceaccount/token && \
43
+ chmod 600 /var/run/secrets/kubernetes.io/serviceaccount/token
44
+
45
+ # Create a dynamic archive
46
+ RUN java -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh -jar application.jar
47
+
48
+ # Clean up the mocked token
49
+ RUN rm -rf /var/run/secrets/kubernetes.io
50
+
51
+ # Static archive
52
+ # RUN java -Xshare:off -XX:DumpLoadedClassList=application.classlist -Dspring.context.exit=onRefresh -jar application.jar
53
+ # RUN java -Xshare:dump -XX:SharedArchiveFile=application.jsa -XX:SharedClassListFile=application.classlist -Dspring.context.exit=onRefresh -cp application.jar
54
+
55
+ RUN adduser -u 2000 -D wrongsecrets
29
56
USER wrongsecrets
30
- CMD java -jar -Dspring.profiles.active=$(echo ${SPRING_PROFILES_ACTIVE}) -Dspringdoc.swagger-ui.enabled=${SPRINGDOC_UI} -Dspringdoc.api-docs.enabled=${SPRINGDOC_DOC} -D /application.jar
57
+
58
+ CMD java -jar -XX:SharedArchiveFile=application.jsa -Dspring.profiles.active=$(echo ${SPRING_PROFILES_ACTIVE}) -Dspringdoc.swagger-ui.enabled=${SPRINGDOC_UI} -Dspringdoc.api-docs.enabled=${SPRINGDOC_DOC} -D application.jar
0 commit comments