どうも、たくチャレ(@takuchalle)です。

heroku Advent Calendar 2018の11日目の記事です。

さて、みなさん、Heroku でwkhtmltoimageを使っていますか?

僕は Qbox という質問箱もどきを作った時に Heroku で wkhtmltoimageを使いました。

その時に初めてBuildpackをカスタマイズしてみたので紹介します。

既存のものを探してみた

検索したらすでにあったので、これを使ってみることにしました。

Contribute to simplefractal/heroku-buildpack-wkhtmltopdf development by creating an account on GitHu

しかし、僕の環境だとデプロイ時にエラーが出て失敗してしまいました。エラー画面をキャプチャし忘れたのでどんなエラーだったか残ってないですが…

改良した

調べていくとStackのバージョン違いでした。Stackに関してはこちらを参照してください。

簡単にいうとベースになっているUbuntuのバージョンが違います。

先ほどのBuildpackではcedar-14heroku-16の時だけwkhtmltoimageをインストールするようになってました。 しかし、最近の Heroku のStackはデフォルトでheroku-18で、僕の環境もheroku-18でしたので一致しませんでした。

Heroku 側でStackのバージョンを下げる方法もあるのですが、サポート期間も短くなってしまうのでBuildpack側を修正する方向にしました。

フォークして修正したものがこちら。

Contribute to takuyaohashi/heroku-buildpack-wkhtmltopdf development by creating an account on GitHub

detectスクリプトでheroku-18を足しただけですが、これで Heroku 上で wkhtmltoimage が使えるようになりました。

使い方

GitHubの README にも書いてありますが、以下のコマンドで追加ができます。

$ heroku buildpacks:add https://github.com/takuyaohashi/heroku-buildpack-wkhtmltopdf.git

次のデプロイから有効になるので、このコマンドの後にgit push heroku masterをしたら有効になります。

まとめ

heroku Advent Calendar 2018の11日目の記事で、Heroku でwkhtmltoimageを使う方法を紹介しました。

wkhtmltoimageは HTML から簡単に画像を生成できるので便利です。

Rails から wkhtmltoimageを使う方法は別の記事に書いたので参考にしてみてください!

次回の heroku Advent Calendar 2018 は、@masutakaさんが何かを書いてくれます!楽しみです!

同じカテゴリの記事