linux Sping Boot 应用程序Docker容器中的日志文件为空

sr4lhrrt  于 2023-01-12  发布在  Linux
关注(0)|答案(2)|浏览(357)

我有一个spring-boot应用程序运行在一个docker容器中,运行良好。但问题是docker容器中的应用程序日志文件是空的。在logback-spring.xml中,日志路径已配置为/var/log。当我转到docker容器中的/var/log目录时,我可以看到日志文件已创建,如“myservice.log”,但当我“cat”该文件以查看内容时,完全是空的同样当我执行

docker logs <container-id>

它什么也不返回。
我还检查了服务器中的Docker根目录。

/apps/docker/containers/<container-id>/<container-id-json.log>

也是空的。
我的停靠文件具有以下结构。

From private-docker-repo/openjdk:11-jre-slim

WORKDIR /opt/services

COPY target/my-service-0.0.1-SNAPSHOT.jar /opt/services/my-service.jar

CMD java -Dspring.profiles.active=dev -Dserver.port=61016 -jar my-service.jar

EXPOSE 61016

什么原因可以是日志文件在这里是空的。高度赞赏,如果有人可以指出我。
编辑-当我使用linux systemd服务部署相同的jar时,日志写得很好。我想知道为什么相同的jar在docker容器中不打印任何日志
提前感谢!

lc8prwob

lc8prwob1#

你确信你的应用程序正在运行吗?进入Docker容器并检查它是否正在运行,在我看来它还没有启动。

62lalag4

62lalag42#

我用ENTRYPOINT替换了CMD命令就解决了这个问题。现在日志打印得很好。我搜索了CMDENTRYPOINT之间的区别,但我仍然不明白这对容器的日志记录有什么影响。所以如果有人能添加评论,说明可能发生了什么,这不仅对我很好,而且对将来看到这个问题的其他人也很好。
谢谢你:)

相关问题