2024年8月9日
dockerコンテナ内のnginxにログを開き直させる方法(logrotate)
たぶん、logrotate と組み合わせるときに必要な情報と思いますが、Docker Hubで配布されているnginxの公式dockerイメージ(alpine版)で、nginx にログを開き直させる方法を調べたので、書いておきます。
$ docker kill -s USR1 コンテナ名
または、次の方法でも行けるでしょう。
$ docker kill -s HUP コンテナ名
もちろん、こんな方法でも開き直せます。
$ docker exec nginx-container nginx -s reopen
つか、docker kill なんてコマンドがあるんですね。知らなかった…。
最近、コンテナ内のnginxが吐くログの logrotate でつまづいていたんですが、どうも、手動で logrotate をデバッグすると動くけど、自動でログローテートするとエラーになるという事で困ってまして。
色々と試したところ、次のコードで動くことが確認できました。(docker 側から /var/log/nginx を volume マウント済みの場合)
/var/log/nginx/*log { daily rotate 10 missingok notifempty sharedscripts compress delaycompress postrotate docker kill -s USR1 コンテナ名 >/dev/null 2>&1 endscript }
コメントを記入