我必须将遗留应用程序放入Docker容器中。该应用运行良好,但我无法显示所有日志文件。问题在于该应用程序在启动可执行文件后创建了多个日志文件(例如service.log, license.log, security.log
等)。将docker容器中的几个日志文件重定向到标准输出(遗留应用程序)
我有一个开始脚本(我们称之为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
,它根据环境执行一些特定的命令。将mkfifo license.log
置于start.sh
和mkfifo service.log
的before_start.sh
工作。 问题是我有更多的文件,并不想source
所有这些。
有没有人有一个想法如何解决这个问题?