FROM alpine:3.24 ARG HPLIP_PLUGIN_VERSION=3.26.4 ARG HPLIP_PLUGIN_SHA256=199f78f8af7f36894d7180e9090963ce2550a75ec701f8a4ba37665a9746fdf0 RUN apk add --no-cache \ dbus \ gcompat \ hplip \ imagemagick \ imagemagick-pdf \ sane-backend-hpaio \ sane-utils \ tzdata # The M1217 scanner needs HP's proprietary Marvell plug-in. HP ships it as a # glibc binary, so gcompat is preloaded when SANE starts it on Alpine/musl. RUN wget \ -q \ -O /tmp/hplip-plugin.run \ "https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-${HPLIP_PLUGIN_VERSION}-plugin.run" \ && echo "${HPLIP_PLUGIN_SHA256} /tmp/hplip-plugin.run" | sha256sum -c - \ && mkdir -p /tmp/hplip-plugin /usr/share/hplip/scan/plugins \ && sh /tmp/hplip-plugin.run \ --target /tmp/hplip-plugin \ --noexec \ >/dev/null \ && install \ -m 0755 \ /tmp/hplip-plugin/bb_marvell-x86_64.so \ /usr/share/hplip/scan/plugins/bb_marvell-x86_64.so \ && ln -sf \ /usr/share/hplip/scan/plugins/bb_marvell-x86_64.so \ /usr/share/hplip/scan/plugins/bb_marvell.so \ && mkdir -p /var/lib/hp \ && printf \ '[plugin]\ninstalled = 1\neula = 1\nversion = %s\n' \ "${HPLIP_PLUGIN_VERSION}" \ > /var/lib/hp/hplip.state \ && chmod 0644 /var/lib/hp/hplip.state \ && rm -rf /tmp/hplip-plugin /tmp/hplip-plugin.run ENV LD_PRELOAD=/lib/libgcompat.so.0 COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh COPY scan-one /usr/local/bin/scan-one RUN chmod 0755 \ /usr/local/bin/docker-entrypoint.sh \ /usr/local/bin/scan-one ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] CMD ["/usr/local/bin/scan-one"]