公式に書いてあるだろと言われそうですが一応。
Services にある Redis を利用する
MySQL/PostgreSQL 以外にも MongoDB 等があり、その中に Redis
も利用できる。
このサービスを利用する事で、ビルドプロセスの中で Redis をインストールしたりする必要が無くなる。
利用方法
wercker.yaml
以下のように wercker/redis
を services
に追加します。
wercker.yaml
box: wercker/rvm
services:
- wercker/redis
build:
....
コードでの利用
可能ならテスト環境でのみ差し替えられるようにした方が便利です。(mock-redis
とかを使うケースの方が多いかもしれませんが)
spec_helper.rb
# redis-rb を利用している場合
config.before :all do
Redis.current = Redis.new(
host: "#{ENV['WERCKER_REDIS_HOST'] || 'localhost'}",
port: "#{ENV['WERCKER_REDIS_PORT'] || 6379"
)
end
dotenv
とか使えば ||
の部分は削れそうですが、お好みで。
参考: Getting started with Flask, Redis and wercker
他の環境変数
-
REDIS_URL
:redis://host:port/
形式の値が取れる -
WERCKER_REDIS_URL
: 同上