我在用docker compose run --service-ports --detach [SERVICE_NAME]命令初始化的容器中运行公共Ruby on rails Web应用程序停靠镜像(GitLab).

我的目标是使用binding.pry个断点在Image的源代码中调试特定的函数.为了避免初始bundle install出现问题,我使用docker exec [CONTAINER_ID] /bin/bash&&gem install pry-rails安装了nessesary pry-railsgem.

我得到一个undefined method错误,尽管pry-rails创业板是安装和必需的.

docker attach个实例对应的日志(log):

==> /var/log/gitlab/gitlab-rails/production.log <==
  
ActionView::Template::Error (undefined method `pry' for #<Binding:0x00007ff556ce52b8>
Did you mean?  try):

以下是已安装pry-rails的确认信息:

root@3cbe23da9b57:/# gem list | grep pry-rails
pry-rails (0.3.9)

root@3cbe23da9b57:/# gem which pry-rails
/opt/gitlab/embedded/lib/ruby/gems/3.0.0/gems/pry-rails-0.3.9/lib/pry-rails.rb

使用以下代码块,Gemfile内部需要pry-rails:

group :development, :test do
  gem 'pry-rails', '~> 0.3.9'
end

gem env输出:

RubyGems Environment:
  - RUBYGEMS VERSION: 3.4.14
  - RUBY VERSION: 3.0.6 (2023-03-30 patchlevel 216) [x86_64-linux]
  - INSTALLATION DIRECTORY: /opt/gitlab/embedded/lib/ruby/gems/3.0.0
  - USER INSTALLATION DIRECTORY: /root/.local/share/gem/ruby/3.0.0
  - RUBY EXECUTABLE: /opt/gitlab/embedded/bin/ruby
  - GIT EXECUTABLE: /opt/gitlab/embedded/bin/git
  - EXECUTABLE DIRECTORY: /opt/gitlab/embedded/bin
  - SPEC CACHE DIRECTORY: /root/.local/share/gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /opt/gitlab/embedded/etc
  - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-linux
  - GEM PATHS:
     - /opt/gitlab/embedded/lib/ruby/gems/3.0.0
     - /root/.local/share/gem/ruby/3.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => true
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /opt/gitlab/embedded/bin
     - /opt/gitlab/bin
     - /assets
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin

推荐答案

您的停靠容器(基于您引用的日志(log)文件)位于生产环境中,因此不会从那:development, :test个块加载gem.您可以确认pry-rails没有加载:Gem.loaded_specs.keys.include? "pry-rails"

Ruby-on-rails相关问答推荐

将两个日期之间的差值转换为Ruby中的iso8601持续时间(如果需要,还可以使用Rails)

select2 未应用于所有下拉列表;它只适用于数据的最后一条记录

如何在 Ruby on Rails 中正确存储 BigDecimal

Ruby on rails 查询不知道怎么写

在 Ruby on Rails html.erb 文件中循环

2个空格或1个制表符,Rails社区的缩进标准是什么?

File.open,写入和保存?

Gem 更新:在从 ASCII-8BIT 到 UTF-8 到 US-ASCII 的转换中,无法将 "\xE7" 转换为 UTF-8

没有要加载的文件 - readline

没有图像时如何在回形针中显示隐藏图像

Rails 成语避免在 has_many 中重复:通过

升级到 ruby​​ 1.9.2 后奇怪的无法要求配置/ bootstrap

在本地 Rails 开发环境中获取真实 IP 地址

嵌套模型和父验证

如何对这个哈希数组进行分组?

Active Record has_many:通过删除一条关联记录

使用 heroku 和 namecheap 设置自定义域

从 Rails 中的 ActiveRecord::RecordNotFound 救援

列出关联模型的名称

Rails:如何在rails中使用dependent::destroy?