docker-monero/xmrig/Dockerfile

101 lines
2.3 KiB
Docker
Raw Normal View History

2020-06-29 13:45:14 +00:00
ARG LIBUV_VERSION=1.38.0
ARG OPENSSL_VERSION=1.1.1g
ARG HWLOC_VERSION=2.2.0
2020-07-17 09:30:02 +00:00
ARG XMRIG_VERSION=6.3.0
2020-06-29 13:45:14 +00:00
FROM alpine:3.12 AS builder
ARG LIBUV_VERSION
ARG OPENSSL_VERSION
ARG HWLOC_VERSION
ARG XMRIG_VERSION
RUN apk add --no-cache \
autoconf \
automake \
build-base \
cmake \
libtool \
linux-headers \
m4
# Build OpenSSL.
WORKDIR /workdir/openssl
ADD https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
openssl-${OPENSSL_VERSION}.tar.gz
RUN tar xvf openssl-${OPENSSL_VERSION}.tar.gz
WORKDIR openssl-${OPENSSL_VERSION}
RUN ./config \
-no-asm \
-no-cms \
-no-comp \
-no-dgram \
-no-filenames \
-no-shared \
-no-zlib \
&& make -j$(nproc) \
&& make install_sw
# Build hwloc
WORKDIR /workdir/hwloc
ADD https://download.open-mpi.org/release/hwloc/v2.2/hwloc-${HWLOC_VERSION}.tar.gz \
hwloc-${HWLOC_VERSION}.tar.gz
RUN tar xvf hwloc-${HWLOC_VERSION}.tar.gz
WORKDIR hwloc-${HWLOC_VERSION}
RUN ./configure \
--disable-dependency-tracking \
--disable-io \
--disable-libudev \
--disable-libxml2 \
--disable-shared \
--enable-static \
&& make -j$(nproc) \
&& make install
# Build libuv
WORKDIR /workdir/libuv
ADD https://github.com/libuv/libuv/archive/v${LIBUV_VERSION}.tar.gz \
libuv-${LIBUV_VERSION}.tar.gz
RUN tar xvf libuv-${LIBUV_VERSION}.tar.gz
WORKDIR libuv-${LIBUV_VERSION}
RUN ./autogen.sh \
&& ./configure \
--disable-shared \
&& make -j$(nproc) \
&& make install
# Build XMRig.
WORKDIR /workdir/xmrig
ADD https://github.com/xmrig/xmrig/archive/v${XMRIG_VERSION}.tar.gz \
xmrig-${XMRIG_VERSION}.tar.gz
RUN tar xvf xmrig-${XMRIG_VERSION}.tar.gz
WORKDIR xmrig-${XMRIG_VERSION}
COPY patches/ patches/
RUN cat patches/*.patch | patch -p1 \
&& cmake \
-Bbuild \
-DBUILD_STATIC=On \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_EXE_LINKER_FLAGS='-static -static-libgcc' \
-DCMAKE_FIND_LIBRARY_SUFFIXES=.a \
-DOPENSSL_USE_STATIC_LIBS=On \
-DWITH_OPENCL=Off \
-DWITH_CUDA=Off \
&& make \
-Cbuild \
-j$(nproc)
FROM scratch
ARG XMRIG_VERSION
LABEL maintainer="Matt Smith <matt@offtopica.uk>"
COPY --from=builder /workdir/xmrig/xmrig-${XMRIG_VERSION}/build/xmrig /xmrig
ENTRYPOINT ["/xmrig"]