我在docker中运行tomcat,但看不到日志。它们被写入到 tomcat/logs 下的各种日志文件中,但是当 tomcat 在 docker 容器中运行时我看不到它们。
这是我的 Dockerfile
FROM tomcat:7-jre8
COPY target/MYAPP.war /usr/local/tomcat/webapps/MYAPP.war
RUN ["/usr/local/tomcat/bin/catalina.sh", "start"]
这就是我构建图像并从中启动容器的方式:
docker build -t MYAPP .
docker run -it --rm -p 8080:8080 --name MYAPP MYAPP
我的应用程序在 tomcat 部署 MYAPP.war 后创建日志文件:/var/log/MYAPP.log
我应该如何修改 Dockerfile 以及应该使用哪个命令来运行它(“docker run ...”),以便在使用 oneliner“docker run -it --rm -p 8080:8080 --name”启动容器 MYAPP 后立即使用MYAPP MYAPP” /var/log/MYAPP.log 的内容将打印到标准输出?
我尝试将以下命令添加到 Dockerfile 但没有帮助。
CMD tail -f /usr/local/MYAPP.log
需要执行以下操作将所有日志定向到标准输出:
- 类似于给出的答案如何阻止应用程序日志登录 Tomcat 中的 catalina.out,您可以将 CATALINA_OUT 环境变量值传递为
/dev/stdout
。这将确保所有 tomcat 日志都发送到 stdout。
- 在catalina基地的logging.properties中,保留java.util.logging.ConsoleHandler并删除其他处理程序。
- 更改应用程序中的日志记录配置(例如,如果您使用 log4j2,则更改 log4j2.xml 文件)以将日志发送到 stdout。在 log4j2 中,您可以使用控制台附加器.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)