Skip to content

Commit c49a1f2

Browse files
authored
Merge pull request #1829 from OWASP/feat/builder-image
feat: use CDS, move to builder and runner image
2 parents 451a2ba + 4a7579e commit c49a1f2

File tree

2 files changed

+35
-7
lines changed

2 files changed

+35
-7
lines changed

Dockerfile

+34-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
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+
19
FROM eclipse-temurin:23.0.1_11-jre-alpine
10+
WORKDIR /application
211

312
ARG argBasedPassword="default"
4-
ARG argBasedVersion="1.10.0"
513
ARG spring_profile=""
614
ENV SPRING_PROFILES_ACTIVE=$spring_profile
715
ENV ARG_BASED_PASSWORD=$argBasedPassword
@@ -17,14 +25,34 @@ RUN echo "$argBasedPassword"
1725

1826
RUN apk add --no-cache libstdc++ icu-libs
1927

20-
RUN adduser -u 2000 -D wrongsecrets
21-
USER wrongsecrets
22-
23-
COPY --chown=wrongsecrets target/wrongsecrets-${argBasedVersion}-SNAPSHOT.jar /application.jar
2428
COPY --chown=wrongsecrets .github/scripts/ /var/tmp/helpers
2529
COPY --chown=wrongsecrets .github/scripts/.bash_history /home/wrongsecrets/
2630
COPY --chown=wrongsecrets src/main/resources/executables/*linux-musl* /home/wrongsecrets/
2731
COPY --chown=wrongsecrets src/test/resources/alibabacreds.kdbx /var/tmp/helpers
2832
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
2956
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

Dockerfile.web

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM jeroenwillemsen/wrongsecrets:1.10.0-no-vault
1+
FROM jeroenwillemsen/wrongsecrets:1.10.2-CDS-no-vault
22
ARG argBasedVersion="1.10.0-no-vault"
33
ARG CANARY_URLS="http://canarytokens.com/terms/about/s7cfbdakys13246ewd8ivuvku/post.jsp,http://canarytokens.com/terms/about/y0all60b627gzp19ahqh7rl6j/post.jsp"
44
ARG CTF_ENABLED=false

0 commit comments

Comments
 (0)