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 プラグインを使うようにしたのだけど、アドオンや環境変数の設定はそのまま引き継がれるようだった。