You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku运行Rails rake任务报错无法找到rake-13.0.6依赖

Heroku部署后执行Rake任务提示找不到rake-13.0.6版本排查方案

问题现象

编写的Rake任务在本地环境可正常运行,部署到Heroku平台后执行失败,报错提示无法找到rake-13.0.6版本,报错信息如下:

➜  mw_wines_feed git:(master) heroku run rake mw_wines:import_feed
Running rake mw_wines:import_feed on ⬢ mw-wines-feed... up, run.7472 (Hobby)
Could not find rake-13.0.6 in any of the sources
Run `bundle install` to install missing gems.

本地已执行bundle install后将代码推送到master分支,问题未解决,项目Gemfile中已明确声明对应版本的rake依赖,Gemfile配置如下:

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.7.0'

gem 'rails', '~> 6.1.6'
gem 'pg', '~> 1.1'
gem 'puma', '~> 5.0'
gem 'sass-rails', '>= 6'
gem 'webpacker', '~> 5.0'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.7'
# gem 'redis', '~> 4.0'
# gem 'bcrypt', '~> 3.1.7'
# gem 'image_processing', '~> 1.2'
gem 'bootsnap', '>= 1.4.4', require: false

group :development, :test do
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  gem 'web-console', '>= 4.1.0'
  gem 'rack-mini-profiler', '~> 2.0'
  gem 'listen', '~> 3.3'
  gem 'spring'
end

group :test do
  gem 'capybara', '>= 3.26'
  gem 'selenium-webdriver', '>= 4.0.0.rc1'
  gem 'webdrivers'
end

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem 'active_record_fix_integer_limit'
gem 'addressable'
gem 'dotenv-rails', groups: [:development, :test]
gem 'google_drive'
gem 'googleauth'
gem 'rake', '13.0.6'

排查解决步骤

按以下顺序逐一排查即可解决问题:

  • 首先确认Gemfile.lock文件已提交到Git仓库。Heroku部署时依赖该文件锁定gem版本,若本地执行bundle install后未提交该文件,或该文件被加入.gitignore,Heroku端就无法安装到指定版本的rake。本地可执行grep -A 2 "rake" Gemfile.lock确认锁文件中rake版本为13.0.6,确认后提交该文件重新推送部署即可。
  • 清理Heroku构建缓存后重新部署。Heroku会缓存旧的依赖包,缓存异常时会出现版本找不到的问题,执行以下命令清理缓存:
    # 安装构建插件(已安装可跳过)
    heroku plugins:install heroku-builds
    # 替换为你的Heroku应用名
    heroku builds:cache:purge -a mw-wines-feed
    # 提交空提交触发重新部署
    git commit --allow-empty -m "purge build cache"
    git push heroku master
    
  • 确认Heroku端Ruby版本与本地一致。Gemfile中已锁定Ruby版本为2.7.0,查看Heroku部署日志中输出的Ruby版本号,若版本不匹配,会导致gem解析异常,可在Heroku配置中明确指定Ruby版本,或调整Gemfile中的Ruby版本与Heroku栈支持的版本对齐。
  • 检查是否存在依赖冲突。本地执行bundle list | grep rake确认本地安装的rake版本确实为13.0.6,若存在其他gem依赖了不同版本的rake,会导致锁文件中rake版本不符合预期,此时可删除本地Gemfile.lock后重新执行bundle install生成新的锁文件,确认版本正确后提交重新部署。
  • 部署完成后可执行heroku run bundle list | grep rake验证Heroku端是否已正确安装对应版本的rake,再执行Rake任务即可。

内容的提问来源于stack exchange,提问作者fasito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 20:18:25