ec2 实例“找不到 Gemfile 或 .bundle/ 目录”

Posted

技术标签:

【中文标题】ec2 实例“找不到 Gemfile 或 .bundle/ 目录”【英文标题】:ec2 instance "Could not locate Gemfile or .bundle/ directory" 【发布时间】:2019-01-04 05:36:39 【问题描述】:

我在 Elastic Beanstalk 上上传和部署 ruby​​ 应用程序时遇到问题 在“/var/log/eb-activity.log”中有一个错误“/opt/rubies/ruby-2.4.4/lib/ruby/site_ruby/2.4.0/bundler.rb:221:in `rescue in root': 找不到 Gemfile 或 .bundle/ 目录 (Bundler::GemfileNotFound)'。

这是来自 ec2 实例的 bundler.rb 第 221 行的部分代码

  def root
  @root ||= begin
              default_gemfile.dirname.expand_path
            rescue GemfileNotFound
              bundle_dir = default_bundle_dir
              raise GemfileNotFound, "Could not locate Gemfile or .bundle/ directory" unless bundle_dir
              Pathname.new(File.expand_path("..", bundle_dir))
            end
   end

这个网站有完整的 bundler.rb 代码,和我的 bundler.rb 完全一样

http://sistework.mspbs.gov.py/redmin/GEM_HOME/gems/bundler-1.10.6/lib/bundler.rb

这是 GemFile 的图像

顺便说一句,通常我在压缩应用程序并上传之前运行此命令

bundle package

从此链接 https://aws.amazon.com/blogs/devops/locally-packaging-gem-dependencies-for-ruby-applications-in-elastic-beanstalk/

【问题讨论】:

您说...'我怀疑发生此错误是因为应用程序包中缺少 Gemfile'...这是否意味着您的应用没有 Gemfile? @AlejandroMarti 放弃了我在谈论 puma 应用程序的句子,但我用 gemFile 中的图像更新了问题 【参考方案1】:

通常有两件事可以为我解决这个问题。

    我没有捆绑安装。 有时,我必须使用 bundle exec 运行一些东西

bundle exec <Your path> puma

【讨论】:

我可以毫无问题地运行这些命令,通常我运行 bundle install 然后 bundle package 然后我压缩文件并上传并部署到 Elastic Beanstalk。之后,我将在 eb-activity.log 中收到错误消息,即“在 root 中救援”:找不到 Gemfile 或 .bundle/ 目录(Bundler::GemfileNotFound)”。

以上是关于ec2 实例“找不到 Gemfile 或 .bundle/ 目录”的主要内容,如果未能解决你的问题,请参考以下文章

将 EC2 m1.Medium 升级为 EC2 m1.Large 实例

创建新实例时如何保护来自 Amazon EC2 实例的数据?

如何从ec2实例ssh到另一个ec2实例而不将公钥存储在其中一个实例中?

ec2 实例和 AWS Auto Scaling 组

无法从 EC2 实例连接到 RDS 实例

确定 Amazon EC2 实例创建日期/时间