Rails + Elasticsearch + kuromoji のテストを Wercker で実行する
Rails から Elasticsearch を使っているときのテストの書き方(elasticsearch-rails, RSpec) のつづきです。Rails から Elasticsearch を使っているときのテストを Wercker で実行するときに必要な設定をメモしておきます。
環境は下記のとおりです。
- Elasticserch 1.3.1
- analysis-kuromoji(ブラグイン)2.3.0
gem
box-kuromoji-elasticsearch
Wercker でテストするときには下記を使っています。kuromoji プラグイン入りを選ぶなら一択です。
wercker.yml
にドキュメントどおりに書く。
services: - wantedly/kuromoji-elasticsearch@0.0.6
このとき下記の環境変数が与えられます。
WERCKER_ELASTICSEARCH_PORT: 9200 WERCKER_ELASTICSEARCH_HOST: "[DYNAMIC_IP_ADDRESS]" WERCKER_ELASTICSEARCH_URL: "[DYNAMIC_IP_ADDRESS]:9200"
config/initializers/elasticsearch.rb
werker で動かすときは Elasticsearch の URL は http://localhost:9200
ではないので、環境変数を利用してうまいことやります。
# config/initializers/elasticsearch.rb # Connect to specific Elasticsearch cluster elasticsearch_url = ENV['ELASTICSEARCH_URL'] || ENV['WERCKER_ELASTICSEARCH_URL'] || 'http://localhost:9200' Elasticsearch::Model.client = Elasticsearch::Client.new(host: elasticsearch_url)
以上です。ではでは。