Techioz Blog

運用環境で wkhtmltopdf を使用すると、無効なプラットフォーム エラーが発生する

概要

PDF 生成に wicked-pdf を使用するアプリをデプロイしましたが、動作させることができません。私のサーバーはubuntu-20.04を使用しており、以下のエラーが発生します(ruby:2.7.1-alpineを使用しています)

/usr/local/bundle/gems/wkhtmltopdf-binary-0.12.6.6/bin/wkhtmltopdf:69:in `<main>': Invalid platform, must be running on Ubuntu 16.04/18.04/20.04/22.04, CentOS 6/7/8, Debian 9/10, Archlinux amd64, or Intel-based Cocoa macOS (missing binary: /usr/local/bundle/gems/wkhtmltopdf-binary-0.12.6.6/bin/wkhtmltopdf_alpine_3.12.0_amd64). (RuntimeError)

解決策

次の行を dockerfile に追加して修正しました。

RUN apk --no-cache add wkhtmltopdf ttf-ubuntu-font-family

そして config/initializers/wicked_pdf.rb を更新します

require "wicked_pdf"

WickedPdf.config = {
  exe_path: '/usr/bin/wkhtmltopdf'
}