132 lines
3.9 KiB
Docker
132 lines
3.9 KiB
Docker
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.15 as build-stage
|
||
|
||
ARG BUILD_DATE
|
||
ARG VERSION
|
||
ARG QBITTORRENT_VERSION
|
||
|
||
ENV HOME="/config" \
|
||
XDG_CONFIG_HOME="/config" \
|
||
XDG_DATA_HOME="/config"
|
||
|
||
RUN \
|
||
echo "**** install packages ****" && \
|
||
apk add -U --update --no-cache --virtual=build-dependencies \
|
||
autoconf \
|
||
automake \
|
||
boost-dev \
|
||
build-base \
|
||
cmake \
|
||
curl \
|
||
git \
|
||
grep \
|
||
libtool \
|
||
linux-headers \
|
||
perl \
|
||
pkgconf \
|
||
python3-dev \
|
||
re2c \
|
||
icu-dev \
|
||
libexecinfo-dev \
|
||
openssl-dev \
|
||
qt6-qtbase-dev \
|
||
qt6-qttools-dev \
|
||
qt6-qtsvg-dev \
|
||
zlib-dev && \
|
||
mkdir -p /build && \
|
||
echo "**** build ninja ****" && \
|
||
git clone --shallow-submodules --recurse-submodules https://github.com/ninja-build/ninja.git ~/ninja && cd ~/ninja && \
|
||
git checkout "$(git tag -l --sort=-v:refname "v*" | head -n 1)" && \
|
||
cmake -Wno-dev -B build \
|
||
-D CMAKE_CXX_STANDARD=17 \
|
||
-D CMAKE_INSTALL_PREFIX="/usr" && \
|
||
cmake --build build && \
|
||
cmake --install build && \
|
||
echo "**** build libtorrent ****" && \
|
||
git clone --shallow-submodules --recurse-submodules https://github.com/arvidn/libtorrent.git ~/libtorrent && cd ~/libtorrent && \
|
||
git checkout "$(git tag -l --sort=-v:refname "v2*" | head -n 1)" && \
|
||
cmake -Wno-dev -G Ninja -B build \
|
||
-D CMAKE_BUILD_TYPE="release" \
|
||
-D CMAKE_CXX_STANDARD=17 \
|
||
-D CMAKE_INSTALL_LIBDIR="lib" \
|
||
-D CMAKE_INSTALL_PREFIX="/usr" && \
|
||
cmake --build build && \
|
||
cmake --install build && \
|
||
echo "**** build qbittorrent ****" && \
|
||
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
|
||
QBITTORRENT_VERSION="release-"$(curl -s "https://raw.githubusercontent.com/qbittorrent/qBittorrent/HEAD/Changelog" | grep -Po '^\w{3} \w{3} \d{2} \d{4} - .* - \K(v\d+\.\d+\.\d+\.?\d?)$' | head -1 | cut -c2-); \
|
||
fi && \
|
||
git clone --shallow-submodules --recurse-submodules https://github.com/qbittorrent/qBittorrent.git ~/qbittorrent && cd ~/qbittorrent && \
|
||
git checkout "$(git tag -l --sort=-v:refname "${QBITTORRENT_VERSION}" | head -n 1)" && \
|
||
cmake -Wno-dev -G Ninja -B build \
|
||
-D CMAKE_BUILD_TYPE="release" \
|
||
-D CMAKE_CXX_STANDARD=17 \
|
||
-D CMAKE_CXX_STANDARD_LIBRARIES="/usr/lib/libexecinfo.so" \
|
||
-D CMAKE_INSTALL_PREFIX="/build/usr" \
|
||
-D GUI=OFF \
|
||
-D QT6=ON && \
|
||
cmake --build build && \
|
||
cmake --install build && \
|
||
echo "**** cleanup ****" && \
|
||
apk del --purge \
|
||
build-dependencies && \
|
||
rm -rf \
|
||
/config/* \
|
||
/tmp/*
|
||
|
||
FROM ghcr.io/linuxserver/baseimage-alpine:3.15
|
||
|
||
# set version label
|
||
ARG BUILD_DATE
|
||
ARG VERSION
|
||
ARG QBT_VERSION
|
||
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
|
||
LABEL maintainer="thespad"
|
||
|
||
# environment settings
|
||
ENV HOME="/config" \
|
||
XDG_CONFIG_HOME="/config" \
|
||
XDG_DATA_HOME="/config"
|
||
|
||
#copy build artifacts from build-stage
|
||
COPY --from=build-stage /build/usr/ /usr/
|
||
COPY --from=build-stage /usr/lib/libtorrent-rasterbar.so.* /usr/lib/
|
||
|
||
# install runtime packages and qbitorrent-cli
|
||
RUN \
|
||
apk add -U --update --no-cache \
|
||
p7zip \
|
||
geoip \
|
||
unzip \
|
||
bash \
|
||
curl \
|
||
icu-libs \
|
||
libexecinfo \
|
||
openssl \
|
||
python3 \
|
||
qt6-qtbase \
|
||
zlib && \
|
||
apk add -U --upgrade --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.14/main/ unrar && \
|
||
echo "***** install qbitorrent-cli ****" && \
|
||
if [ -z ${QBT_VERSION+x} ]; then \
|
||
QBT_VERSION=$(curl -sX GET "https://api.github.com/repos/ludviglundgren/qbittorrent-cli/releases/latest" \
|
||
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
||
fi && \
|
||
curl -o \
|
||
/tmp/qbt.tar.gz -L \
|
||
"https://github.com/ludviglundgren/qbittorrent-cli/releases/download/${QBT_VERSION}/qbittorrent-cli_$(echo $QBT_VERSION | cut -c2-)_linux_amd64.tar.gz" && \
|
||
tar xzf \
|
||
/tmp/qbt.tar.gz -C \
|
||
/tmp && \
|
||
mv /tmp/qbt /usr/bin && \
|
||
echo "**** cleanup ****" && \
|
||
rm -rf \
|
||
/tmp/* \
|
||
/var/tmp/*
|
||
|
||
# add local files
|
||
COPY root/ /
|
||
|
||
# ports and volumes
|
||
EXPOSE 6881 6881/udp 8080
|
||
VOLUME /config
|