経緯
Dockerのコンテナとしてnginxを立ててサービス開発中です。
ホストマシンはCoreOSです。
nginxコンテナではnginxのみ動いており、cronやsshは動かしていません。
それでnginxのアクセスログ、エラーログのローテーションをどうするか検討しており、無難にlogrotateを使おうと考えました。
ここで同じ環境内でcronを動かすなら簡単なのですが、nginxコンテナで他の処理を動かしたくなかったため、
cronでlogrotateを動かすコンテナを別に立てました。
で、nginxのログディレクトリ配下をホストマシンにマウントし、両コンテナからアクセスできるようにし、日時でlogrotateを回しました。
問題
上記で初回のログローテートが走った際にファイルは作成されるのですが、nginxがログファイルを見失ってしまい以降ログが出力されなくなります。
同じ環境で動いてるのであれば
kill -USR1 `cat master.nginx.pid`
や
service nginx reload
等をlogrotateの設定ファイルに書くことで解決するのですが、今回別コンテナなので、どのように解決するかよい方法が思いつかずおります。
試したこと
--linkオプションを指定してコンテナ間通信を可能にした上で、ncコマンドを使ってnginx側でコマンドを実行させようとしましたが、このためには-eオプションが必要で、-eオプションはビルドしなおす必要があるため諦めました。
別コンテナのnginxを再起動させるよい方法がありましたら、ご教授頂きたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/31 05:24