80 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| FROM debian:12-slim AS build
 | |
| 
 | |
| ARG LIBTORRENT_VERSION="0.13.8"
 | |
| ARG LIBTORRENT_HASH="ed115a28f4ae8cfcd33b94a597c076ca74fd549867a26e4fac9505c27288e983"
 | |
| ARG LIBTORRENT_URL="https://github.com/rakshasa/rtorrent-archive/raw/master/libtorrent-${LIBTORRENT_VERSION}.tar.gz"
 | |
| 
 | |
| ARG RTORRENT_VERSION="0.9.8"
 | |
| ARG RTORRENT_HASH="9edf0304bf142215d3bc85a0771446b6a72d0ad8218efbe184b41e4c9c7542af"
 | |
| ARG RTORRENT_URL="https://github.com/rakshasa/rtorrent-archive/raw/master/rtorrent-${RTORRENT_VERSION}.tar.gz"
 | |
| 
 | |
| RUN apt-get update && \
 | |
|     apt-get install -y \
 | |
|         build-essential \
 | |
|         curl \
 | |
|         libcurl4-openssl-dev \
 | |
|         libncursesw5-dev \
 | |
|         libssl-dev \
 | |
|         pkg-config \
 | |
|         zlib1g-dev && \
 | |
|     apt-get clean && \
 | |
|     rm -rf /var/lib/apt/lists/*
 | |
| 
 | |
| RUN curl -s -o "/tmp/libtorrent-${LIBTORRENT_VERSION}.tar.gz" -L "$LIBTORRENT_URL" && \
 | |
|     FILE_HASH="$(sha256sum /tmp/libtorrent-${LIBTORRENT_VERSION}.tar.gz | cut -d' ' -f1)" && \
 | |
|     du -sh "/tmp/libtorrent-${LIBTORRENT_VERSION}.tar.gz"; \
 | |
|     if [ ! "$LIBTORRENT_HASH" = "$FILE_HASH" ]; then \
 | |
|         echo "SHA256 verification failed!" && \
 | |
|         echo -e "EXPECTED:\t$LIBTORRENT_HASH" && \
 | |
|         echo -e "ACTUAL:\t$FILE_HASH" && \
 | |
|         exit 1; \
 | |
|     fi && \
 | |
|     tar -xzvf "/tmp/libtorrent-${LIBTORRENT_VERSION}.tar.gz" -C /tmp/ && \
 | |
|     rm -rf "/tmp/libtorrent-${LIBTORRENT_VERSION}.tar.gz"
 | |
| 
 | |
| WORKDIR "/tmp/libtorrent-${LIBTORRENT_VERSION}"
 | |
| 
 | |
| RUN ./configure && \
 | |
|     make && \
 | |
|     make install
 | |
| 
 | |
| RUN curl -s -o "/tmp/rtorrent-${RTORRENT_VERSION}.tar.gz" -L "$RTORRENT_URL" && \
 | |
|     FILE_HASH="$(sha256sum /tmp/rtorrent-${RTORRENT_VERSION}.tar.gz | cut -d' ' -f1)" && \
 | |
|     if [ ! "$RTORRENT_HASH" = "$FILE_HASH" ]; then \
 | |
|         echo "SHA256 verification failed!" && \
 | |
|         echo -e "EXPECTED:\t$RTORRENT_HASH" && \
 | |
|         echo -e "ACTUAL:\t$FILE_HASH" && \
 | |
|         exit 1; \
 | |
|     fi && \
 | |
|     tar -xzvf "/tmp/rtorrent-${RTORRENT_VERSION}.tar.gz" -C /tmp/ && \
 | |
|     rm -rf "/tmp/rtorrent-${RTORRENT_VERSION}.tar.gz"
 | |
| 
 | |
| WORKDIR "/tmp/rtorrent-${RTORRENT_VERSION}"
 | |
| 
 | |
| RUN ./configure && \
 | |
|     make && \
 | |
|     make install
 | |
| 
 | |
| RUN curl -s -L "https://raw.githubusercontent.com/wiki/rakshasa/rtorrent/CONFIG-Template.md" \
 | |
|         | sed -ne "/^######/,/^### END/p" \
 | |
|         | sed -re "s:/home/USERNAME:/home/rtorrent:" > /tmp/rtorrent.rc.template
 | |
| 
 | |
| FROM debian:12-slim AS runtime
 | |
| 
 | |
| COPY --from=build /usr/local/lib/libtorrent.so* /usr/local/lib/
 | |
| COPY --from=build /usr/local/bin/rtorrent /usr/local/bin/
 | |
| COPY --from=build /tmp/rtorrent.rc.template /tmp/rtorrent.rc.template
 | |
| 
 | |
| RUN apt-get update && \
 | |
|     apt-get install -y \
 | |
|         libcurl4 \
 | |
|         libncursesw6 \
 | |
|         procps \
 | |
|         screen && \
 | |
|     apt-get clean && \
 | |
|     rm -rf /var/lib/apt/lists/*
 | |
| 
 | |
| COPY entrypoint.sh /usr/local/bin/entrypoint.sh
 | |
| RUN chmod +x /usr/local/bin/entrypoint.sh
 | |
| ENTRYPOINT ["entrypoint.sh"]
 |