我正在使用免费的云代工帐户。今天我尝试推送我的Play 2.2应用程序,但拒绝启动,消息为Unable to detect a supported application type (RuntimeError)
。
还有人有这个工作吗?
以下是完整的错误消息:
Preparing to start ***... OK
-----> Downloaded app package (38M)
/var/vcap/packages/dea_next/buildpacks/lib/buildpack.rb:94:in `build_pack': Unable to detect a supported application type (RuntimeError)
from /var/vcap/packages/dea_next/buildpacks/lib/buildpack.rb:72:in `block in compile_with_timeout'
from /usr/lib/ruby/1.9.1/timeout.rb:68:in `timeout'
from /var/vcap/packages/dea_next/buildpacks/lib/buildpack.rb:71:in `compile_with_timeout'
from /var/vcap/packages/dea_next/buildpacks/lib/buildpack.rb:53:in `block in stage_application'
from /var/vcap/packages/dea_next/buildpacks/lib/buildpack.rb:49:in `chdir'
from /var/vcap/packages/dea_next/buildpacks/lib/buildpack.rb:49:in `stage_application'
from /var/vcap/packages/dea_next/buildpacks/bin/run:10:in `<main>'
Checking status of app '***'...Application failed to stage
play new version22
)cd version22
)play dist
)cf push --path=target/universal/version22-1.0-SNAPSHOT.zip
) - 只需选择默认值我想这是由new Feature (What's new in Play 2.2?) 新阶段和dist任务引起的,它改变了应用的包装。这可能导致云代工问题检测应用程序类型。
答案 0 :(得分:0)
您针对v1或v2定位了哪个云代工厂版本?
您遇到的错误是因为,cf没有播放框架的构建包。
如果您要定位云代工厂v2,请尝试以这种方式推送应用程序:
cf push --buildpack https://github.com/cloudfoundry/java-buildpack
答案 1 :(得分:0)
经过一些试验和错误后,我使用以下manifest.yml
在云代工厂v2上进行部署:
---
env:
JAVA_HOME: .java
applications:
- name: <APP_NAME>
memory: 512M
instances: 1
host: <AP_HOST_NAME>
domain: cfapps.io
path: <PATH_TO_ZIP_FILE>
command: ./<DIR_PACKAGE_NAME>/bin/<APP_NAME>
buildpack: https://github.com/cloudfoundry/java-buildpack
您必须填写&lt;&gt;之间的信息对于您的应用程序,以及配置其他信息,但核心解决方案是提供JAVA_HOME
env变量,以及启动命令的正确路径。
也许我们应该考虑一个SBT任务来创建这个文件作为永久性修复,或者更新java-buildpack ......我不确定哪个是最好的方法。
编辑:您还需要在<DIR_PACKAGE_NAME>/start
中放置一个名为start的脚本,否则云代工厂将尝试编译应用程序并惨遭失败 - 我想这需要修复在java-buildpack中也是如此。
答案 2 :(得分:0)
这是confirmed as a bug。应尽快解决。