FROM thecodingmachine/gotenberg:3.2.0 AS hack FROM debian:9.5-slim # |-------------------------------------------------------------------------- # | Common libraries # |-------------------------------------------------------------------------- # | # | Libraries used in the build process of this image. # | RUN echo "deb http://httpredir.debian.org/debian/ stretch main contrib non-free" > /etc/apt/sources.list &&\ apt-get update &&\ apt-get install -y curl wget python3-pip # |-------------------------------------------------------------------------- # | PM2 # |-------------------------------------------------------------------------- # | # | Installs PM2 for launching programs in background and with failure # | recovering. In our case: Chrome (headless) and Office (headless). # | # Yep, this is dirty. The following script does not work anymore (see https://github.com/Unitech/pm2/issues/4127). #RUN curl -sL https://raw.githubusercontent.com/Unitech/pm2/master/packager/setup.deb.sh | bash - # Installing PM2 with Node.js and npm breaks something which prevents Google Chrome to work as expected. # So we just copy all PM2 related files from a previous version of Gotenberg. RUN curl -sL https://deb.nodesource.com/setup_9.x | bash - &&\ apt-get install -y nodejs COPY --from=hack /usr/bin/pm2 /usr/bin/pm2 COPY --from=hack /usr/share/pm2 /usr/share/pm2 COPY --from=hack /etc/default/pm2 /usr/default/pm2 COPY --from=hack /etc/systemd/system/pm2.service /etc/systemd/system/pm2.service # |-------------------------------------------------------------------------- # | Chrome # |-------------------------------------------------------------------------- # | # | Installs Chrome for HTML and Markdown conversions. # | RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - &&\ echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | tee /etc/apt/sources.list.d/google-chrome.list &&\ apt-get update &&\ apt-get -y install google-chrome-stable # |-------------------------------------------------------------------------- # | Unoconv # |-------------------------------------------------------------------------- # | # | Installs unoconv and LibreOffice for Office documents conversions. # | RUN pip3 install unoconv &&\ # https://github.com/nextcloud/docker/issues/380 mkdir -p /usr/share/man/man1mkdir -p /usr/share/man/man1 &&\ apt-get -y install libreoffice # |-------------------------------------------------------------------------- # | PDFtk # |-------------------------------------------------------------------------- # | # | Installs PDFtk as an alternative to pdfcpu for merging PDFs. # | https://github.com/thecodingmachine/gotenberg/issues/29 # | RUN apt-get -y install pdftk