はじめに
機械学習を用いたアプリをHerokuでデプロイしようとしたところ、下のようなエラーが出ました。
Compiled slug size: 625.5M is too large (max is 500M)
「Slug Sizeを減らす方法」で検索すると下記の解決方法①についてはたくさん出てくるのですが、それでは解決できなかったので、私が検索しまくって辿り着いた解決方法と合わせて紹介します。
解決方法①
「Slug Size too large」などで検索すると一番よく出てくる解決方法です。
まず、heroku-repoというライブラリをインストールします。
heroku plugins:install heroku-repo
以下のコードでGitレポジトリに残っているキャッシュが消され、Slug Sizeが減ります。<アプリ名>には自分のアプリ名を入れてください。
heroku repo:gc --app <アプリ名>
heroku repo:purge_cache --app <アプリ名>
参考URL:
https://thoughtbot.com/blog/how-to-reduce-a-large-heroku-compiled-slug-size
解決方法②
私の場合は上記の方法で解決せず、たくさんの時間を溶かしました。(そもそも最初のデプロイができていないのでcurlでエラーが出てました。)
今回、機械学習を使ったアプリを作成していたため、tensorflowを用いていたのですが、これが問題でした。
どうやらtensorflowのバージョンが2.0以上だとライブラリのサイズが大き過ぎてSlug Sizeが500Mを超えてしまうようです。
そこでライブラリのバージョンを下げたところSlug Sizeが625Mから351Mまで減りました。
tensorflow==1.15.3
参考URL:
https://stackoverflow.com/questions/61062303/deploy-python-app-to-heroku-slug-size-too-large
tensorflowのバージョンを下げるだけで半分もSlug Sizeが減るとは思っていませんでした。もしtensorflowを使っていて、解決方法①でもダメだった場合は試してみてください。