AppEngine Flexible Ruby 環境,應用程式啟動錯誤:/usr/bin/env: 'ruby2.5':沒有這樣的文件或目錄



我正在尝试将仅限API的Rails 5应用程序部署到具有标准Ruby运行时的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',并且我也在设置为 2.5.1 的项目根目录中添加了一个显式.ruby-version文件。

我在日志中没有其他可用的调试信息,没有其他幻想。我的入口点命令是:

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
--------------------------------------------------------------------------------------------------------------------------------------------------------

好的,我现在看到在本地调试 docker 映像后发生了什么。因为我使用的是 ubuntu 并使用系统红宝石来安装 gem,所以它/usr/bin/env ruby2.5嵌入到捆绑到我的应用程序中的每个可执行脚本中。我删除了所有 gem 并切换到 rbenv 来管理 Ruby 版本,这减轻了 unbuntu 的 ruby 和我的应用程序之间的这种奇怪行为。

最新更新