#はじめに
Heroku でデプロイする際に以下のエラーでハマりました。いろいろ試して原因が Aptfile の改行コードにあることに行きつきました。
remote: ! Push rejected, failed to compile Apt app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to [app-name].
remote:
To https://git.heroku.com/[app-name].git
! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/[app-name].git'
##使用環境
Windows10
#Heroku の Aptfile の改行コードは LF にする
Python でウェブアプリを作成し Heroku へデプロイしようとしていました。まず最初にハマったのは Heroku 環境で OpenCV を使うところですが、この点に関しては多数の記事があり参考にさせていただきました。
ですが同じようにやってもデプロイまで行けませんでした。最初に記載したエラーログを見ると Aptfile で引っかかっているようです。
いろいろ試しましたが、デプロイの方法を教えてくれた人がくれた Aptfile を使うとうまくいくことが分かりました。どうも自分で作った Aptfile が原因なようです。
見た目はそっくりなのですが、良い Aptfile とダメだった Aptfile の 2 つをよくよく見比べると改行コードが異なっていました。
Visual Studio Code (VS Code) では改行コードは画面右下に以下のように表示されています。
PyCharm でも同じような場所に表示されていました。
Windows 環境の改行コードは CR-LF ですが Heroku (Linux) 環境の改行コードは LF であるためここで引っかかっていたようです。
やり方はいろいろあるようですが、VS code や PyCharm で CR-LF となっているところをクリックし変更することでデプロイできるようになりました。今回 Procfile は 1 行だったので問題ありませんでしたが、おそらくこちらも同様です。
#おわりに
以前書いた記事の中でも desktop.ini というファイルでハマったのですがそれも Windows 特有の問題でした。前回に引き続き今回も Windows 特有の問題でハマりました。Unix ベースの環境であればこういう余計な問題は回避できそうですね。エンジニアに Mac が好まれる理由が少し分かった気がします。プログラミングにおいて Windows の情報はどちらかというとマイナーで、特に私のような初心者には気が付きにくいと思いましたので気にしてみてください。