197 lines
4.6 KiB
Docker
197 lines
4.6 KiB
Docker
FROM danielberteaud/alpine:24.3-1 AS builder
|
|
|
|
ARG WKHTMLTOX_VERSION=0.12.6
|
|
|
|
# Copy patches
|
|
COPY resources/ /
|
|
|
|
# Alpine 3.11 and higher versions have libstdc++ and g++ v9+ in their repositories which breaks the build
|
|
RUN echo 'http://dl-cdn.alpinelinux.org/alpine/v3.10/main' >> /etc/apk/repositories
|
|
|
|
# Install needed packages
|
|
RUN set -eu \
|
|
apk add --no-cache \
|
|
libstdc++=8.3.0-r0 \
|
|
libx11 \
|
|
libxrender \
|
|
libxext \
|
|
libssl1.1 \
|
|
ca-certificates \
|
|
fontconfig \
|
|
freetype \
|
|
ttf-dejavu \
|
|
ttf-droid \
|
|
ttf-freefont \
|
|
ttf-liberation &&\
|
|
apk add --no-cache --virtual .build-deps \
|
|
g++=8.3.0-r0 \
|
|
git \
|
|
gtk+ \
|
|
gtk+-dev \
|
|
make \
|
|
mesa-dev \
|
|
msttcorefonts-installer \
|
|
openssl-dev \
|
|
patch \
|
|
fontconfig-dev \
|
|
freetype-dev &&\
|
|
# Install microsoft fonts \
|
|
update-ms-fonts &&\
|
|
fc-cache -f &&\
|
|
# Download source files \
|
|
git clone --recursive https://github.com/wkhtmltopdf/wkhtmltopdf.git /tmp/wkhtmltopdf &&\
|
|
cd /tmp/wkhtmltopdf &&\
|
|
git checkout tags/${WKHTMLTOX_VERSION} &&\
|
|
# Apply patches \
|
|
cd /tmp/wkhtmltopdf/qt &&\
|
|
patch -p1 -i /tmp/wkhtml_patches/qt-musl.patch &&\
|
|
patch -p1 -i /tmp/wkhtml_patches/qt-musl-iconv-no-bom.patch &&\
|
|
patch -p1 -i /tmp/wkhtml_patches/qt-recursive-global-mutex.patch &&\
|
|
patch -p1 -i /tmp/wkhtml_patches/qt-gcc6.patch &&\
|
|
# Modify qmake config \
|
|
sed -i -e 's|-O2|$CXXFLAGS|' \
|
|
-e '/^QMAKE_RPATH/s| -Wl,-rpath,||g' \
|
|
-e '/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g' \
|
|
mkspecs/common/g++.conf &&\
|
|
# Prepare optimal build settings\
|
|
NB_CORES=$(grep -c '^processor' /proc/cpuinfo) &&\
|
|
\
|
|
# Install qt \
|
|
./configure -confirm-license -opensource \
|
|
-prefix /usr \
|
|
-datadir /usr/share/qt \
|
|
-sysconfdir /etc \
|
|
-plugindir /usr/lib/qt/plugins \
|
|
-importdir /usr/lib/qt/imports \
|
|
-silent \
|
|
-release \
|
|
-static \
|
|
-webkit \
|
|
-script \
|
|
-svg \
|
|
-exceptions \
|
|
-xmlpatterns \
|
|
-openssl-linked \
|
|
-no-fast \
|
|
-no-largefile \
|
|
-no-accessibility \
|
|
-no-stl \
|
|
-no-sql-ibase \
|
|
-no-sql-mysql \
|
|
-no-sql-odbc \
|
|
-no-sql-psql \
|
|
-no-sql-sqlite \
|
|
-no-sql-sqlite2 \
|
|
-no-qt3support \
|
|
-no-opengl \
|
|
-no-openvg \
|
|
-no-system-proxies \
|
|
-no-multimedia \
|
|
-no-audio-backend \
|
|
-no-phonon \
|
|
-no-phonon-backend \
|
|
-no-javascript-jit \
|
|
-no-scripttools \
|
|
-no-declarative \
|
|
-no-declarative-debug \
|
|
-no-mmx \
|
|
-no-3dnow \
|
|
-no-sse \
|
|
-no-sse2 \
|
|
-no-sse3 \
|
|
-no-ssse3 \
|
|
-no-sse4.1 \
|
|
-no-sse4.2 \
|
|
-no-avx \
|
|
-no-neon \
|
|
-no-rpath \
|
|
-no-nis \
|
|
-no-cups \
|
|
-no-pch \
|
|
-no-dbus \
|
|
-no-separate-debug-info \
|
|
-no-gtkstyle \
|
|
-no-nas-sound \
|
|
-no-opengl \
|
|
-no-openvg \
|
|
-no-sm \
|
|
-no-xshape \
|
|
-no-xvideo \
|
|
-no-xsync \
|
|
-no-xinerama \
|
|
-no-xcursor \
|
|
-no-xfixes \
|
|
-no-xrandr \
|
|
-no-mitshm \
|
|
-no-xinput \
|
|
-no-xkb \
|
|
-no-glib \
|
|
-no-icu \
|
|
-nomake demos \
|
|
-nomake docs \
|
|
-nomake examples \
|
|
-nomake tools \
|
|
-nomake tests \
|
|
-nomake translations \
|
|
-graphicssystem raster \
|
|
-qt-zlib \
|
|
-qt-libpng \
|
|
-qt-libmng \
|
|
-qt-libtiff \
|
|
-qt-libjpeg \
|
|
-optimized-qmake \
|
|
-iconv \
|
|
-xrender \
|
|
-fontconfig \
|
|
-D ENABLE_VIDEO=0 &&\
|
|
make --jobs $(($NB_CORES*2)) --silent &&\
|
|
make install &&\
|
|
\
|
|
# Install wkhtmltopdf \
|
|
cd /tmp/wkhtmltopdf &&\
|
|
qmake &&\
|
|
make --jobs $(($NB_CORES*2)) --silent &&\
|
|
make install &&\
|
|
make clean &&\
|
|
make distclean &&\
|
|
\
|
|
# Uninstall qt \
|
|
cd /tmp/wkhtmltopdf/qt &&\
|
|
make uninstall &&\
|
|
make clean &&\
|
|
make distclean &&\
|
|
\
|
|
# Clean up when done \
|
|
rm -rf /tmp/* &&\
|
|
apk del .build-deps
|
|
|
|
FROM danielberteaud/alpine:24.3-1
|
|
MAINTAINER Daniel Berteaud <dbd@ehtrace.com>
|
|
|
|
RUN set -eux &&\
|
|
# For wkhtml2pdf
|
|
apk add --no-cache \
|
|
libstdc++ \
|
|
libx11 \
|
|
libxrender \
|
|
libxext \
|
|
ca-certificates \
|
|
fontconfig \
|
|
freetype \
|
|
ttf-dejavu \
|
|
ttf-droid \
|
|
ttf-freefont \
|
|
ttf-liberation \
|
|
&&\
|
|
apk add --no-cache --virtual .build-deps \
|
|
msttcorefonts-installer \
|
|
&&\
|
|
# Install microsoft fonts \
|
|
update-ms-fonts &&\
|
|
fc-cache -f &&\
|
|
# Clean up when done \
|
|
rm -rf /tmp/* &&\
|
|
apk del .build-deps
|
|
|
|
COPY --from=builder /bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
|