【发布时间】:2015-01-21 12:47:34
【问题描述】:
我在我的 Rails 应用程序中使用 Redis 缓存:
config.cache_store = :redis_store, redis_url
当我将 Rails 应用程序直接推送到 Heroku 时,它已成功部署。使用 Travis 时,Heroku 部署步骤失败,因为资产预编译尝试连接到 Redis。
Running: rake assets:precompile
rake aborted!
ArgumentError: invalid uri scheme ''
/tmp/build_7c5f167bf750cb2986dbb9c3510ea11e/vendor/bundle/ruby/2.1.0/gems/redis-3.2.0/lib/redis/client.rb:390:in `_parse_options'
我尝试了各种方法:使用 rake 任务覆盖 RedisStore 方法,将 cache_store 实例化移动到初始化阶段,使用 Docker 代替 sudo,更改 Heroku 构建策略和其他 travis.yml 配置等。
我不想在本地预编译,我也不想改变缓存解决方案。在 cedar-14 堆栈上运行的许多其他应用程序使用非常相似的设置,因此问题似乎有点奇怪。
对于如何解决这个 Travis+Heroku 部署问题有什么建议吗?
【问题讨论】:
-
我也遇到了同样的问题,而且对于它的价值,我在 fork 我的 heroku 应用程序时也看到了这个问题。
-
@joshrl 请看下面我的回答,以防你还没有解决。
标签: ruby-on-rails heroku deployment redis travis-ci