docker-rtorrent
This is plain simple rtorrent with proxy and custom rtorrent.rc
Base image: Alpine Linux 3.24 stable (alpine:3.24), including its latest patch updates.
Source: https://git.k2patel.in/k2patel/docker-rtorrent
Public access is read-only; account registration on this server is disabled. Report issues at https://github.com/k2patel/docker-rtorrent/issues. For contributions, open an issue with a link to your branch or patch on another Git provider. Changes are reviewed and applied by the maintainer on Gitea.
Gitea Actions builds and publishes docker.io/k2patel/rtorrent:latest
on pushes to main, manually, and monthly on the third day at 00:00 UTC.
The repository requires Actions secrets DOCKER_USERNAME and DOCKER_TOKEN
(a Docker Hub token with write access to k2patel/rtorrent).
Builds run on the remote Kubernetes runner for linux/amd64, matching the
previous GitHub build. Buildx pushes directly to Docker Hub without loading
the image into the runner's Docker image store. Its temporary builder and
build cache are removed after each job; no image archives or build records
are uploaded to Gitea, and no local container builds are required.
Latest 0.16 version caveat
- since version 0.16 explicitly set
network.bind_address.set = 0.0.0.0, when ipv6 is disabled on kernel.
Distroless variant
docker.io/k2patel/rtorrent:distroless is built separately using the manual
Build Distroless rTorrent workflow. It preserves the Alpine 3.24 rTorrent
binary, musl libraries, CA certificates and timezone/terminal data in a scratch
final image. It contains no shell, package manager, BusyBox, or build tools.
A small native launcher removes the stale session lock and execs rTorrent,
so signals go directly to rTorrent. It also provides the shell-free TCP healthcheck.
CI tests the assembled filesystem by starting rTorrent and making an SCGI XML-RPC
request before publishing. The working latest tag is independent.
Your mounted rtorrent.rc must not depend on shell commands or utilities missing
from this image (including execute hooks). Review those hooks before switching.
Existing mount paths, SCGI port 5001, root UID and HOME=/root are preserved.
Use the Compose overlay to replace the shell-based healthcheck:
docker compose -f docker-compose.yml -f docker-compose.distroless.yml up -d
The overlay also selects the separate Flood distroless image. Keep the same .env
values and mounted data. To roll back, use the base Compose file with :latest.