Files
mini-unix-brute/brute/source/Dockerfile.optimized

39 lines
983 B
Docker

FROM alpine:latest AS build
RUN apk add --no-cache build-base musl-dev linux-headers upx
WORKDIR /src
# Copy all yescrypt source and header files flat
COPY yescrypt/*.h .
COPY yescrypt/yescrypt-ref.c .
COPY yescrypt/yescrypt-common.c .
COPY yescrypt/sha256.c .
COPY yescrypt/insecure_memzero.c .
COPY bruteforce.c .
# Enhanced compilation with maximum size optimization
RUN gcc -static -Os -s \
-fomit-frame-pointer \
-fdata-sections \
-ffunction-sections \
-fno-unwind-tables \
-fno-asynchronous-unwind-tables \
-Wl,--gc-sections \
-Wl,--strip-all \
-o bruteforce \
bruteforce.c \
yescrypt-ref.c \
yescrypt-common.c \
sha256.c \
insecure_memzero.c \
&& strip --strip-all \
--remove-section=.comment \
--remove-section=.note.* \
--remove-section=.eh_frame \
bruteforce \
&& upx --lzma --ultra-brute bruteforce
FROM scratch
COPY --from=build /src/bruteforce /
ENTRYPOINT ["/bruteforce"]