Select Git revision
Dockerfile 1.88 KiB
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/
RUN adduser -u 1000 -D rtorrent && \
addgroup rtorrent rtorrent && \
mkdir -p /data && chown rtorrent /data && \
mkdir -p /private && chown rtorrent /private
USER rtorrent
COPY src/rtorrent.rc /rtorrent.rc
COPY entrypoint.sh /entrypoint.sh
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"
VOLUME ["/data"]
VOLUME ["/tmp"]
ENTRYPOINT ["/entrypoint.sh"]