/note/tech
やりたいこと:
- デフォルとだとコンテナログは
/var/lib/docker/containers/<コンテナID>/<コンテナID>-json.log
に保存される
- このログをホストマシンの任意のディレクトリに保存したい(具体的にはDockerfileと同じディレクトリに保存されるようにしたい)
調査時に確認したリソース:
結論:
- コンテナ毎にログファイルの出力先を指定する方法は無さそうな感じ(Dockerデーモン全体のログ出力先を変えることはできそうだった)
- loggingドライバのプラグインがありそうなものだが、目的に合致したものは無さそうだった
- ↓がそれっぽい感じはあるが、スター数が20程度では流石に怖くて使えない
- https://github.com/deep-compute/docker-file-log-driver
- 強引に目的を達成するとすれば、↓のような感じだろうか
- (1) ホストマシンのディレクトリをVolumeとしてコンテナにマウント
- (2) アプリケーションは標準出力ではなく、マウントしたディレクトリにログファイルを作成
- あまりやりたくはないが...
- このぐらいの事は基本機能としてできて欲しい感はあるのだが
参考資料:
(2023/07/10)