我有一个 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/