# syntax=docker/dockerfile:1@sha256:4edf897a3ffa55b89f906fc8cc78afdb3f1834cc9c7083565e611a8a7d5fe99e
FROM eclipse-temurin:21-jdk-noble@sha256:b468c3fc688b14450571494f588bd939378e7fd542ed5a73f8efc13f17872a87 AS runtime
WORKDIR /opt
RUN --mount=type=bind,from=toolchain,source=ghidra.zip,target=/tmp/ghidra.zip \
    printf '%s  %s\n' ddac49f903da9d5bac833e5cc79395098b9c33cfd3279be5f31bd00387d2d4db /tmp/ghidra.zip | sha256sum -c - \
    && jar xf /tmp/ghidra.zip \
    && mv ghidra_12.1.4_PUBLIC ghidra
WORKDIR /opt/lab
COPY src src
COPY config config
COPY --chmod=755 bin/entrypoint /opt/lab/bin/entrypoint
RUN find /opt/ghidra -name '*.jar' -type f -print | sort | paste -sd: - > /opt/lab/classpath \
    && find src -name '*.java' -type f -print | sort > /tmp/sources \
    && mkdir classes \
    && javac -proc:none -encoding UTF-8 -cp "$(cat /opt/lab/classpath)" -d classes @/tmp/sources \
    && rm /tmp/sources
ENTRYPOINT ["/bin/bash", "/opt/lab/bin/entrypoint"]
CMD ["baseline"]
