FROM alpine:3.23 AS base FROM base AS builder RUN --mount=type=cache,target=/var/cache/apk apk update RUN --mount=type=cache,target=/var/cache/apk apk add \ abuild \ build-base \ boost-dev \ cmake \ cppzmq \ hidapi-dev \ libsodium-dev \ miniupnpc-dev \ openssl-dev \ rapidjson-dev \ readline-dev \ samurai \ unbound-dev \ zeromq-dev RUN adduser -D -G abuild luser USER luser WORKDIR /home/luser ADD --chown=luser:luser ./APKBUILD . ADD --chown=luser:luser ./easylogging.patch . ADD --chown=luser:luser ./gcc13.patch . ADD --chown=luser:luser ./system-miniupnpc.patch . ADD --chown=luser:luser ./version-string.patch . ADD --chown=luser:luser ./loongarch64.patch . ADD --chown=luser:luser ./miniupnpc.patch . RUN abuild-keygen -a -n USER root RUN cp /home/luser/.abuild/*.pub /etc/apk/keys/ USER luser RUN abuild FROM base AS release RUN adduser -D -h /var/lib/monero monero RUN --mount=type=bind,from=builder,source=/home/luser/.abuild,target=/.abuild cp /.abuild/*.pub /etc/apk/keys RUN --mount=type=bind,from=builder,source=/home/luser/packages,target=/packages apk add /packages/*/*/*.apk USER monero WORKDIR /var/lib/monero ENTRYPOINT /usr/bin/monerod