FROM alpine:3.22 AS base FROM base AS build ARG VERSION RUN --mount=type=cache,target=/var/cache/apk apk add gcc g++ musl-dev cmake ninja hwloc-dev libuv-dev openssl-dev git upx RUN adduser -D -S -h /home/luser luser WORKDIR /home/luser USER luser ADD --chown=luser:luser git@github.com:xmrig/xmrig.git#v${VERSION} xmrig ADD 001-remove-donation.patch . RUN mkdir build WORKDIR xmrig RUN git apply /home/luser/001-remove-donation.patch WORKDIR /home/luser RUN cmake -G Ninja -S xmrig -B build -DCMAKE_BUILD_TYPE=Release \ -DWITH_VAES=TRUE \ -DWITH_RANDOMX=ON \ -DWITH_OPENCL=OFF \ -DWITH_MSR=ON \ -DWITH_CUDA=OFF \ -DWITH_BENCHMARK=OFF \ -DWITH_HWLOC=ON \ -DWITH_HTTP=ON \ -DWITH_SSE41=ON \ -DWITH_AVX2=ON \ -DWITH_ASM=ON \ -DWITH_ARGON2=ON \ -DWITH_ADL=ON \ -DWITH_CN_PICO=ON \ -DWITH_CN_LITE=ON \ -DWITH_CN_HEAVY=ON \ -DWITH_CN_FEMTO=ON \ -DWITH_GHOSTRIDER=ON \ -DWITH_KAWPOW=ON \ -DWITH_ENV_VARS=ON \ -DWITH_RANDOMX=ON WORKDIR build RUN ninja RUN strip -s xmrig RUN upx -6 xmrig FROM base AS release RUN --mount=type=cache,target=/var/cache/apk apk add hwloc libuv openssl COPY --from=build /home/luser/build/xmrig /usr/local/bin/xmrig RUN adduser -D -S -h /var/lib/xmrig xmrig WORKDIR /var/lib/xmrig USER xmrig ENTRYPOINT ["/usr/local/lib/xmrig"]