【发布时间】:2018-06-26 05:17:20
【问题描述】:
我正在尝试使用标准 Ruby 运行时将仅 API 的 Rails 5 应用程序部署到 AppEngine Flex,最后我收到以下错误:
Updating service [default] (this may take several minutes)...failed.
ERROR: (gcloud.app.deploy) Error Response: [9]
Application startup error:
/usr/bin/env: 'ruby2.5': No such file or directory
我在我的 Gemfile 中指定了 ruby '2.5.1' 并且我已经将一个显式的 .ruby-version 文件添加到我的项目的根目录中并设置为 2.5.1。
我在日志中没有其他可用的调试信息,也没有其他幻想。我的入口点命令是:
bundle exec rails server Puma -p $PORT
如果需要,我可以提供更多详细信息,但不确定还有什么相关的。任何指针?据我所知,我这边并没有要求专门在执行时使用的 ruby 版本。
谢谢!
编辑:这是我的 app.yaml 文件
entrypoint: bundle exec rails server Puma -p $PORT
env: flex
runtime: ruby
更新:
我可以验证我在尝试执行 db:migrate 之类的 rake 任务时遇到了类似的问题:
--------- EXECUTE COMMAND ----------
bundle exec rake db:migrate
/usr/bin/env: 'ruby2.5': No such file or directory
ERROR
ERROR: build step 0 "gcr.io/google-appengine/exec-wrapper:latest" failed: exit status 127
--------------------------------------------------------------------------------------------------------------------------------------------------------
【问题讨论】:
-
当您说 ...w/ 标准 Ruby 运行时... 时,您是什么意思?你能从这个tutorial开始看看它是否有效吗?
-
您好,这正是我所做的并且在另一边遇到了这个问题。将我的 app.yaml 添加到问题中。
-
在 app.yaml 中也有这样的部分:
env_variables: SECRET_KEY_BASE: some-generated-key我认为如果你按照this link 中的教程进行操作会更好。我看到一个app.yaml与您在 cloud.google.com/appengine/docs/flexible/ruby/runtime 中显示的类似,但这只是运行时的概述。 -
嗨,维克多,我也有那个部分,但出于明显的原因,我把它省略了。如前所述,我按照您链接的教程进行操作,这是运行 gcloud app deploy 的结果。
-
FWIW rackup 确实有效,puma 的变化没有,抱歉我意识到我没有提到这一点。我的错。我在机架系统中看到了这一点,但不确定这对于实际的 rails 项目来说是不是最好的主意。
标签: ruby-on-rails ruby google-app-engine app-engine-flexible