Heroku Procfile 显着增加了 slug 大小

标签 heroku playframework

我有一个 scala + play (2.3) 应用程序,我将其部署在 heroku 上。当没有定义 Procfile 时,应用程序部署和运行不会出现任何问题(heroku 检测到这是一个 scala play 应用程序)。 slug 大小为 89MB

但是,当我添加一个非常简单的 Procfile 时:

web: target/universal/stage/bin/app_name -Dconfig.resource=application-heroku.conf

其中 application-heroku.conf 只是我的 application.conf 的副本(我想为以下内容创建单独的 application.conf开发和生产)

slug 大小增加到 380MB,并且应用程序无法部署(因为限制为 300MB)。 我做错了什么吗?

最佳答案

某些因素阻止构建包在准备 slug 之前清除构建工件。您是否在构建输出中看到这些行:

-----> Dropping ivy cache from the slug
-----> Dropping sbt boot dir from the slug
-----> Dropping project boot dir from the slug
-----> Dropping compilation artifacts from the slug

如果不是,您能否确认一下

  • 您的项目中有一个 conf/application.conf 文件(即使您不使用它)
  • 或者您的 project/plugins.sbt 中有 sbt-native-packager 依赖项

如果这两个都不成立,构建包将无法安全地清除构建工件。如果您没有 conf/application.conf,请尝试添加一个 - 即使它是一个空占位符。

如果您确实在构建输出中看到那些“Dropping”行,并且仍然得到太大的 slug,请检查您是否没有使用自定义构建包(即您的 BUILDPACK_URL未设置)。

关于Heroku Procfile 显着增加了 slug 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27233933/

相关文章:

scala - Eclipse 在 Play 2.4 设置中显示错误

ubuntu - bash run sbt test 返回错误

java - Play 2.0 框架 - 自定义表单域

django - heroku procfile 问题 : ModuleNotFoundError: No module named 'myApp.wsgi'

ruby-on-rails - 将 Rails 应用程序部署到 heroku 时出错(无法使用供应商创建资源)

javascript - 将 Node 应用程序推送到 heroku Node ./bin/www 时遇到问题?

scala - 在 Play 中以非阻塞方式使用 JDBC 有哪些选项?

mysql - 将远程 mysql 数据库连接到 Heroku Rails 应用程序

html - CSS 不适用于实时 heroku 网站,但适用于本地主机

sql - Play框架忽略进化脚本