Heroku Container Registry で Rails アプリをデプロイするときにハマったこと

個人用メモ。

久しぶりに Heroku を触ったら、Dockerfile のコマンドに一部制限はあるものの手元で作ったイメージを動かすことができるようになっているらしく、おお、となった。buildpack を扱うのを避け続けてきた人生でした。

Hypernova の検証のために、Heroku Container Registry を使って Rails アプリのデプロイをやってみたが、アプリケーションエラーが出る。heroku logs コマンドでログを眺めるがよく分からない。heroku run rails console も試すが、コケる。スタックトレースで、pg が入っていないのが原因だと分かる。

多分、Rails アプリの Docker 化をやったことがある人は知っているか、一度はハマったことがあると思うのだけど、手元で叩いた --without production.bundle/config に記録されたのを COPY でまるごと移してしまっていたのが原因だった。 .dockerignore.bundle を追加して解決した。

あと、本筋と関係のないところで、最初に git push でアプリをデプロイして、諸々のアドオンを導入した後に、Heroku Container Registry プラグインを使うようにしたのだけど、アドオンや環境変数の設定はそのまま引き継がれるようだった。