Heorku部署遇到slug size不足怎么办

Heroku

Heroku 是什么?

Heroku 是一家提供多编程语言的云部署平台。支持从 GitHub 中拉取代码, 按自定义方式进行打包并部署到云服务器上。

Heroku部署Web程序

基于streamlit框架搭建了一个python深度学习的web可交互程序,部署到Heroku时候遇到了一系列问题(感兴趣的小伙伴可以移步到streamlit的web app在Heroku平台上部署bug汇总),文章最后留下了一个最大的问题“slug size不足了”怎么办?

Bug info

在这里插入图片描述
大意是说编译的文件有700+MB,超过了slug size的500MB限制
在这里插入图片描述
最占用slug size的是tensorflow包,达到了500+MB,其它的依赖包均不足几十MB的量级,那么问题就定位到依赖项的容量太大了

Solution 1⭐️⭐️⭐️⭐️⭐️

先来说说,最有效的解决办法,用docker管理再push到Heroku上

  • stackoverflow讨论:https://stackoverflow.com/questions/62114302/compiled-slug-size-578-1m-is-too-large-max-is-500m

Stackoverflow关于slug size的讨论
大意是说:替换用git push heroku master把程序直接push到Heroku的方法,试试启动docker image(docker镜像)再push到Heroku的方法吧(heroku container:push ..., heroku container:release ...),docker的方法不受到slug size的限制

  • 怎样操作呢,官网上有两种方式,第(2)种中用heroku的命令,第(1)种用Docker的命令

官网:https://devcenter.heroku.com/categories/deploying-with-docker

对于不了解Docker的小伙伴来说,重新学习Docker也是个大工程,Docker在本地的资源占用量更大,在国内访问不太流畅,突发奇想,在搜索引擎中搜索关键词“heroku streamlit docker”,下面的帖子强烈推荐,英语语法简单流畅易懂,教程好用,贴心的附上了github的代码

  • 操作链接:https://joshuacook.netlify.app/post/streamlit-app-heroku/

在这里插入图片描述
我理解Dockerfile是docker的配置文件,也是程序按照文件中的命令一行一行的执行,文件的名字必须是Dockerfile,不能有任何的修改

根据帖子的教程,顺利push到了Heroku上,过程中遇到的问题是和docker有关的

  • docker hub账号用qq邮箱收不到邮件,无奈换成别的邮箱
  • 如果不用科学上网,docker hub登陆非常缓慢

点击Heroku的dashboard的Open app按钮,自动跳转到搭建好的app(Heroku也需要科学上网,呜呜呜)
Open app按钮

Solution 2:修改code尽量不用tensorflow包

程序中用到的依赖包如下:
在这里插入图片描述
SGD/Adam等优化器来自于tensorflow包
❌不能替换成from keras.optimizers import SGD,因为SGD等优化器封装在tensorflow.keras.optimizers而不是keras.optimizers
❌不能用compile函数自带的优化器参数optimizer=“sgd”,因为compile不能设置优化器的参数,compile调用优化器的自带参数
❌不能用from keras.optimizer_v1 import SGD,它是tensorflow1.0版本的用法,定义的SGD优化器和compile函数需要的优化器格式不匹配

这样看来,没法修改code去掉tensorflow包了

Solution 3:安装简单版本的tensorflow包/不安装tensorflow包?

No No No~~keras是基于tensorflow,并不能脱离开tensorflow单独运行keras
tensorflow1.0版本的安装包很小,不过tensorflow更新了这么久,使用旧版本的接口难免出现不匹配的问题

Solution 4: 清理clean

推荐一个heroku的插件:heroku-repo,看起来是管理repo的
安装插件可参考:https://devcenter.heroku.com/articles/using-cli-plugins
在这里插入图片描述
插件的使用方法可参考:https://github.com/heroku/heroku-repo
等等

最后,不得不说,stackoverflow和google上关于技术bug等的讨论更多,更有效果~

喜欢的小伙伴请点赞、收藏、转发,一键三连哇

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值