# image for building
FROM alpine:latest AS builder

ARG QBT_VERSION

# alpine linux qbittorrent package: https://git.alpinelinux.org/aports/tree/community/qbittorrent/APKBUILD

RUN \
  apk --update-cache add \
    boost-dev \
    cmake \
    g++ \
    libtorrent-rasterbar-dev \
    ninja \
    qt6-qtbase-dev \
    qt6-qttools-dev

RUN \
  if [ "$QBT_VERSION" = "devel" ]; then \
    wget https://github.com/qbittorrent/qBittorrent/archive/refs/heads/master.zip && \
    unzip master.zip && \
    cd qBittorrent-master ; \
  else \
    wget "https://github.com/qbittorrent/qBittorrent/archive/refs/tags/release-${QBT_VERSION}.tar.gz" && \
    tar -xf "release-${QBT_VERSION}.tar.gz" && \
    cd "qBittorrent-release-${QBT_VERSION}" ; \
  fi && \
  cmake \
    -B build \
    -G Ninja \
    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
    -DGUI=OFF \
    -DQT6=ON \
    -DSTACKTRACE=OFF && \
  cmake --build build && \
  cmake --install build

# image for running
FROM alpine:latest

RUN \
  apk --no-cache add \
    doas \
    libtorrent-rasterbar \
    python3 \
    qt6-qtbase \
    tini

RUN \
  adduser \
    -D \
    -H \
    -s /sbin/nologin \
    -u 1000 \
    qbtUser && \
  echo "permit nopass :root" >> "/etc/doas.d/doas.conf"

COPY --from=builder /usr/local/bin/qbittorrent-nox /usr/bin/qbittorrent-nox

COPY entrypoint.sh /entrypoint.sh

ENTRYPOINT ["/sbin/tini", "-g", "--", "/entrypoint.sh"]