wheneverをupdateして0.9.4
になったらopsworksのデプロイフックでコマンドが通らなくなった。
具体的にはbundle exec whenever -w
を実行すると以下のエラーがでた。
/home/deploy/.bundler/【app名】/ruby/2.1.0/gems/whenever-0.9.4/lib/whenever/numeric_seconds.rb:12:in `gsub': invalid byte sequence in US-ASCII (ArgumentError)
ちょっと調べてみると以下の記事にLC_ALL
とLANG
を設定すると動くよ〜という記述を発見
http://shiro-16.hatenablog.com/entry/2015/02/17/000715
※ このページ内で「invalid byte」で検索すると該当箇所がわかります。
なので、デプロイフックのソースを以下の様に修正
env = node[:deploy][【app名】][:rails_env]
current_release = release_path
execute "whenever -w" do
cwd current_release
command "bundle exec whenever -w"
environment(
'RAILS_ENV' => env
)
end
↓
env = node[:deploy][【app名】][:rails_env]
current_release = release_path
execute "whenever -w" do
cwd current_release
command "bundle exec whenever -w"
environment(
'RAILS_ENV' => env,
'LANG' => 'ja_JP.UTF-8',
'LC_ALL' => 'ja_JP.UTF-8'
)
end
これでエラーなく通った!