FROM "ubuntu:18.04"
# Il n'est pas possible d'utiliser alpine,
# cela pose problème avec le script de post-install qui dépends vraiment de glibc.
# Il faudrait alors partir sur une full recompilation de calibre (sans certitudes sur le bon fonctionnement).
LABEL maintainer="Julien Cabillot <dockerimages@cabillot.eu>"

RUN export DEBIAN_FRONTEND="noninteractive" && \
    export BUILD_PACKAGES="wget xz-utils" && \
    export RUNTIME_PACKAGES="python xvfb libfontconfig libxrender1 libxcomposite1" && \
    apt-get -qq update && \
    apt-get -qq --yes install ${BUILD_PACKAGES} ${RUNTIME_PACKAGES} && \
    wget -nv -O- https://download.calibre-ebook.com/linux-installer.py | python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()" && \
    apt-get -qq --yes remove --purge ${BUILD_PACKAGES} && \
    apt-get -qq --yes autoremove --purge && \
    apt-get -qq --yes clean all && \
    rm -rf "/usr/share/doc/"* \
           "/usr/src/"* \
           "/var/cache/"* \
           "/var/lib/apt/lists/"* \
           "/var/log/"{apt/*,dpkg.log} \
           "/tmp/"* && \
    useradd -m "calibre"

# TODO: ne pas faire tourner en root si possible

# Add Tini
ENV "TINI_VERSION" "v0.16.1"
ADD "https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini" "/tini"
RUN chmod +x "/tini"
ENTRYPOINT ["/tini", "--"]

USER "calibre"

CMD [ "bash", "-c", "xvfb-run calibredb add --recurse --one-book-per-directory --library-path /export/ /ebooks/*/" ]
