DockerでUnicornを動かすのにログを標準出力する

概要

Dockerは標準出力にログを吐かないと、docker logsやECS等のマネージドにログを渡す事ができない。
手元で試す分にはDockerへbashをアタッチしてみればよいが、本番運用となるとそうもいかない。
unicornでログの出力先を指定している場合の対処方法を記録。

書き方

$stdout, $stderrがRubyの組み込み定数になっているので指定してあげればOK.

listen  File.expand_path('/var/www/hoge/unicorn.sock', app_path)
pid File.expand_path('/var/www/hoge/unicorn.pid', app_path)
- stderr_path File.expand_path('/var/www/hoge/logs/stderr.log', app_path)
- stdout_path File.expand_path('/var/www/hoge/logs/stdout.log', app_path)
+ stderr_path = $stderr
+ stdout_path = $stdout