結論
標題通りです。
Procfile
に release
タグで書いてもうまくいかないときもあります。これはずばり「リリースフェーズ中のファイルシステムの変更はアプリの Dyno formation にデプロイされない」ということが理由です*1。
この場合は .procfile
に書くという逃げ道があります。
問題点
.profile
なので、たとえば $ heroku run bash
でシェルに入るときに毎回実行されてしまう。したがって、内容は冪等になるものであり、かつ、時間がかからないものにしないといけない。
「あなたが今やっていることはちょっと変なことだよ」ということの証拠だと思うので、とりあえずこじんまりとまとめるべき。
補足
- 実際問題として何に困ってこの方法にたどり着いたかというと、PostgreSQL に接続するために証明書がいるのですが、それは「ファイルのパス指定」でしか対象を指定できないことです*2
.profile
の実行とProcfile
のrelease:
の実行順序については、Procfile
の方が先です*3- このため、いろいろと辛みがあることが存在する