Dockerコンテナにレガシーアプリケーションを置く必要があります。アプリは正常に動作していますが、すべてのログファイルを表示することはできません。問題は、アプリケーションが実行可能ファイルを開始した後に複数のログファイル(たとえばservice.log, license.log, security.log
など)を作成していることです。dockerコンテナの複数のログファイルをstdout(レガシーアプリケーション)にリダイレクト
私はいくつかのもの(リンク、設定)を準備し、上記のログファイルを作成するアプリケーションを起動する開始スクリプト(start.sh
と呼ぶ)を持っています。
私が見つけたのはsimilar problemで、名前付きパイプを使用するソリューションを適用しようとしました(/proc/1/fd/1
へのリンクを作成できませんでした)。
mkfifo /path/to/app/license.log && tail -f /path/to/app/license.log &
mkfifo /path/to/app/security.log && tail -f /path/to/app/security.log &
...
をしかし、問題は、最初のファイルのみがdocker logs
にリダイレクトされるということです。だから私は、開始スクリプトに次のように置きました。他は見えません。
好奇心が強いのはstart.sh
です。環境によっては、特定のコマンドを実行するsource before_start.sh
という行があります。 をstart.sh
に、mkfifo service.log
をbefore_start.sh
に配置してください。 問題は、私はより多くのファイルを持っており、それらのすべてをsource
にしたくないということです。
誰もがこれを解決する方法のアイデアを持っていますか?