【问题标题】:CircleCI builds fail on rake db:createCircleCI 在 rake db:create 上构建失败
【发布时间】:2020-03-04 17:52:25
【问题描述】:

我有一个无法在 CircleCI 上构建的项目。所有测试都在本地通过。如果构建失败,并且我使用 ssh 重新运行构建,我可以成功连接并运行所有命令,并且所有测试都在 ssh 会话中通过。

构建在bundle exec rake db:create 失败

我尝试重新排列 config/application.rb 中的 require 语句,但无济于事。有什么想法吗?

这是完整的回溯:

bundle exec rake db:create --trace
rake aborted!
/usr/local/lib/ruby/2.4.0/uri.rb:99: warning: already initialized constant URI::VERSION_CODE
/usr/local/lib/ruby/2.4.0/uri.rb:99: warning: previous definition of VERSION_CODE was here
/usr/local/lib/ruby/2.4.0/uri.rb:100: warning: already initialized constant URI::VERSION
/usr/local/lib/ruby/2.4.0/uri.rb:100: warning: previous definition of VERSION was here
NameError: uninitialized constant URI::Generic
Did you mean?  URI::Generic
/usr/local/lib/ruby/2.4.0/uri/ftp.rb:23:in `<module:URI>'
/usr/local/lib/ruby/2.4.0/uri/ftp.rb:13:in `<top (required)>'
/usr/local/lib/ruby/2.4.0/uri.rb:107:in `require'
/usr/local/lib/ruby/2.4.0/uri.rb:107:in `<top (required)>'
/usr/local/lib/ruby/2.4.0/uri/rfc2396_parser.rb:13:in `require'
/usr/local/lib/ruby/2.4.0/uri/rfc2396_parser.rb:13:in `<top (required)>'
/usr/local/lib/ruby/2.4.0/uri/common.rb:13:in `require'
/usr/local/lib/ruby/2.4.0/uri/common.rb:13:in `<top (required)>'
/usr/local/lib/ruby/2.4.0/uri/generic.rb:12:in `require'
/usr/local/lib/ruby/2.4.0/uri/generic.rb:12:in `<top (required)>'
/usr/local/bundle/ruby/2.4.0/gems/activesupport-5.2.4.1/lib/active_support/core_ext/object/json.rb:6:in `require'
/usr/local/bundle/ruby/2.4.0/gems/activesupport-5.2.4.1/lib/active_support/core_ext/object/json.rb:6:in `<top (required)>'
/usr/local/bundle/ruby/2.4.0/gems/activesupport-5.2.4.1/lib/active_support/core_ext/object.rb:13:in `require'
/usr/local/bundle/ruby/2.4.0/gems/activesupport-5.2.4.1/lib/active_support/core_ext/object.rb:13:in `<top (required)>'
/usr/local/bundle/ruby/2.4.0/gems/railties-5.2.4.1/lib/rails/configuration.rb:4:in `require'
/usr/local/bundle/ruby/2.4.0/gems/railties-5.2.4.1/lib/rails/configuration.rb:4:in `<top (required)>'
/usr/local/bundle/ruby/2.4.0/gems/railties-5.2.4.1/lib/rails/railtie/configuration.rb:3:in `require'
/usr/local/bundle/ruby/2.4.0/gems/railties-5.2.4.1/lib/rails/railtie/configuration.rb:3:in `<top (required)>'
/usr/local/bundle/ruby/2.4.0/gems/railties-5.2.4.1/lib/rails/railtie.rb:223:in `require'
/usr/local/bundle/ruby/2.4.0/gems/railties-5.2.4.1/lib/rails/railtie.rb:223:in `config'
/usr/local/bundle/ruby/2.4.0/gems/railties-5.2.4.1/lib/rails/railtie.rb:127:in `config'
/usr/local/bundle/ruby/2.4.0/gems/activesupport-5.2.4.1/lib/active_support/i18n_railtie.rb:11:in `<class:Railtie>'
/usr/local/bundle/ruby/2.4.0/gems/activesupport-5.2.4.1/lib/active_support/i18n_railtie.rb:10:in `<module:I18n>'
/usr/local/bundle/ruby/2.4.0/gems/activesupport-5.2.4.1/lib/active_support/i18n_railtie.rb:9:in `<top (required)>'
/usr/local/bundle/ruby/2.4.0/gems/activesupport-5.2.4.1/lib/active_support/railtie.rb:4:in `require'
/usr/local/bundle/ruby/2.4.0/gems/activesupport-5.2.4.1/lib/active_support/railtie.rb:4:in `<top (required)>'
/usr/local/bundle/ruby/2.4.0/gems/railties-5.2.4.1/lib/rails.rb:17:in `require'
/usr/local/bundle/ruby/2.4.0/gems/railties-5.2.4.1/lib/rails.rb:17:in `<top (required)>'
/usr/local/bundle/ruby/2.4.0/gems/railties-5.2.4.1/lib/rails/all.rb:3:in `require'
/usr/local/bundle/ruby/2.4.0/gems/railties-5.2.4.1/lib/rails/all.rb:3:in `<top (required)>'
/home/circleci/vce/config/application.rb:7:in `require'
/home/circleci/vce/config/application.rb:7:in `<top (required)>'
/home/circleci/vce/Rakefile:4:in `require'
/home/circleci/vce/Rakefile:4:in `<top (required)>'
/usr/local/bundle/ruby/2.4.0/gems/rake-10.5.0/lib/rake/rake_module.rb:28:in `load'
/usr/local/bundle/ruby/2.4.0/gems/rake-10.5.0/lib/rake/rake_module.rb:28:in `load_rakefile'
/usr/local/bundle/ruby/2.4.0/gems/rake-10.5.0/lib/rake/application.rb:689:in `raw_load_rakefile'
/usr/local/bundle/ruby/2.4.0/gems/rake-10.5.0/lib/rake/application.rb:94:in `block in load_rakefile'
/usr/local/bundle/ruby/2.4.0/gems/rake-10.5.0/lib/rake/application.rb:176:in `standard_exception_handling'
/usr/local/bundle/ruby/2.4.0/gems/rake-10.5.0/lib/rake/application.rb:93:in `load_rakefile'
/usr/local/bundle/ruby/2.4.0/gems/rake-10.5.0/lib/rake/application.rb:77:in `block in run'
/usr/local/bundle/ruby/2.4.0/gems/rake-10.5.0/lib/rake/application.rb:176:in `standard_exception_handling'
/usr/local/bundle/ruby/2.4.0/gems/rake-10.5.0/lib/rake/application.rb:75:in `run'
/usr/local/bundle/ruby/2.4.0/gems/rake-10.5.0/bin/rake:33:in `<top (required)>'
/usr/local/bundle/ruby/2.4.0/bin/rake:23:in `load'
/usr/local/bundle/ruby/2.4.0/bin/rake:23:in `<top (required)>'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `load'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `kernel_load'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:28:in `run'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start'
/usr/local/bundle/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>'
/usr/local/bundle/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/usr/local/bundle/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>'
/usr/local/bundle/bin/bundle:113:in `load'
/usr/local/bundle/bin/bundle:113:in `<main>'

Exited with code exit status 1
CircleCI received exit code 1```


【问题讨论】:

  • 特拉维斯也发生在我身上,但它在本地通过!

标签: ruby-on-rails circleci circleci-2.0


【解决方案1】:

这可能不是一个完整的答案,但我在使用 circleci/ruby:2.4.2-jessie-node 图像时遇到了类似的问题。我没有深入挖掘,但从表面上看,加载URI::Generic 类似乎存在问题。

由于此错误来自核心 ruby​​ 本身,我将其归结为该图像,并将图像更新为 circleci/ruby:2.4.3-jessie-node 并且没有遇到相同的错误。

我有更多信息,但没有机会更深入地了解:

TL;DR

在文件.circleci/config.yml更新:

docker:
    - image: circleci/ruby:2.4.2-jessie-node

docker:
    - image: circleci/ruby:2.4.3-jessie-node

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    相关资源
    最近更新 更多