FROM debian:stretch
MAINTAINER Julien Cabillot <jcabillot@gmail.com>

RUN groupadd -r -g 666 sabnzbd && \
    useradd -l -r -u 666 -g 666 -d /sabnzbd sabnzbd

#
# Add SABnzbd init script.
#

COPY "sabnzbd.sh" "/sabnzbd.sh"
RUN chmod 755 "/sabnzbd.sh"

#
# Fix locales to handle UTF-8 characters.
#

ENV LANG C.UTF-8

#
# Install SABnzbd and all required dependencies.
#

RUN export SABNZBD_VERSION=2.3.0 PAR2CMDLINE_VERSION=v0.6.14-mt1 && \
    export DEBIAN_FRONTEND=noninteractive && \
    export BUILD_PACKAGES="automake build-essential python-dev python-pip" && \
    export RUNTIME_PACKAGES="ca-certificates p7zip-full python-cheetah python-yenc unrar unzip libgomp1 openssl python-cryptography python-openssl curl" && \
    export PIP_PACKAGES="sabyenc" && \
    sed -i "s/ main$/ main contrib non-free/" /etc/apt/sources.list && \
    apt-get -q update && \
    apt-get install -qqy $BUILD_PACKAGES $RUNTIME_PACKAGES && \
    pip install $PIP_PACKAGES && \
    curl -SL -o /tmp/sabnzbd.tar.gz https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz && \
    tar xzf /tmp/sabnzbd.tar.gz && \
    mv SABnzbd-* sabnzbd && \
    chown -R sabnzbd: sabnzbd && \
    curl -o /tmp/par2cmdline-mt.tar.gz https://codeload.github.com/jkansanen/par2cmdline-mt/tar.gz/${PAR2CMDLINE_VERSION} && \
    tar xzf /tmp/par2cmdline-mt.tar.gz -C /tmp && \
    cd /tmp/par2cmdline-* && \
    aclocal && \
    automake --add-missing && \
    autoconf && \
    ./configure && \
    make && \
    make install && \
    apt-get -y remove --purge $BUILD_PACKAGES && \
    apt-get -y autoremove --purge && \
    apt-get -y clean all && \
    rm -rf /var/lib/apt/lists/* && \
    rm -rf /tmp/*

#
# Define container settings.
#

VOLUME ["/datadir", "/media"]

EXPOSE 8080

#
# Start SABnzbd.
#

WORKDIR "/sabnzbd"

HEALTHCHECK --interval="10s" \
    CMD curl --fail "http://localhost:8080" || exit 1

CMD ["/sabnzbd.sh"]
