FROM alpine:3.15 AS builder ARG RTORRENT_VERSION=0.9.8 ARG LIBTORRENT_VERSION=0.13.8 RUN apk add --no-cache \ alpine-sdk \ autoconf \ automake \ curl-dev \ libsigc++-dev \ libtool \ linux-headers \ ncurses-dev \ openssl-dev \ xmlrpc-c-dev \ zlib-dev RUN git clone --branch v${RTORRENT_VERSION} --single-branch https://github.com/rakshasa/rtorrent.git /rtorrent RUN git clone --branch v${LIBTORRENT_VERSION} --single-branch https://github.com/rakshasa/libtorrent.git /libtorrent WORKDIR /libtorrent RUN ./autogen.sh && \ ./configure \ --prefix=/usr \ --disable-debug \ --disable-instrumentation && \ make -j$(nproc) && \ mkdir -p /build && \ DESTDIR=/build make install && \ make install WORKDIR /rtorrent RUN ./autogen.sh && \ ./configure \ --prefix=/usr \ --disable-debug \ --with-xmlrpc-c && \ make -j$(nproc) && \ mkdir -p /build && \ DESTDIR=/build make install FROM alpine:3.15 RUN apk add --no-cache \ curl \ libgcc \ libstdc++ \ musl \ ncurses-libs \ xmlrpc-c COPY --from=builder /build/usr/bin/rtorrent /usr/bin/rtorrent COPY --from=builder /build/usr/lib/libtorrent.so* /usr/lib/ ENV RT_TRACKER_UDP="yes" ENV RT_DHT_MODE="disable" ENV RT_DHT_PORT=49160 ENV RT_PROTO_PEX="no" ENV RT_MAX_UP=100 ENV RT_MAX_UP_GLOBAL=250 ENV RT_MIN_PEERS=20 ENV RT_MAX_PEERS=60 ENV RT_MIN_PEERS_SEED=30 ENV RT_MAX_PEERS_SEED=80 ENV RT_TRACKERS_WANT=80 ENV RT_MEMORY_MAX="1800M" ENV RT_DAEMON="true" ENV RT_XMLRPC_BIND="0.0.0.0" ENV RT_XMLRPC_PORT="5000" RUN adduser -u 1000 -D rtorrent && \ addgroup rtorrent rtorrent && \ mkdir /data && chown rtorrent /data && \ mkdir /private && chown rtorrent /private USER rtorrent COPY src/rtorrent.conf /rtorrent.conf COPY entrypoint.sh /entrypoint.sh VOLUME ["/data"] VOLUME ["/tmp"] CMD ["/entrypoint.sh"]