gpt4 book ai didi

jetty - dockerized jetty 在哪里存储日志?

转载 作者:行者123 更新时间:2023-12-04 17:47:07 29 4
gpt4 key购买 nike

我正在将一个项目打包到 docker jetty 镜像中,并且我正在尝试访问日志,但没有访问日志。

文件

FROM jetty:9.2.10
MAINTAINER Me "me@me.com"

ADD ./target/abc-1.0.0 /var/lib/jetty/webapps/ROOT

EXPOSE 8080

用于启动 docker 镜像的 Bash 脚本:
docker pull me/abc
docker stop abc
docker rm abc
docker run --name='abc' -d -p 10908:8080 -v /var/log/abc:/var/log/jetty me/abc:latest

图像正在运行,但我在 /var/log 中没有看到任何 jetty 日志.

我试过 docker run -it jetty bash ,但在 /var/log 中没有看到任何 jetty 日志任何一个。

我是否缺少一个参数来制作 jetty 输出日志,或者它是否在 /var/log/jetty 以外的其他地方输出它? ?

最佳答案

为什么看不到日志

2点需要注意:

  • 运行 docker run -it jetty bash将启动一个新容器,而不是将您连接到现有的守护程序容器。
  • 它会调用 bash 而不是在该容器中启动 jetty,因此它不会帮助您从任一容器获取日志。

  • 所以这个交互式容器在任何情况下都不会帮助你。

    但是也...

    JettyLogs 无论如何都被禁用

    此外,您不会在标准位置看到日志(例如,如果您尝试使用 docker exec 来读取日志,或将它们放入一个卷中),很简单,因为 Jetty Docker 文件恰本地完全禁用了日志记录.

    如果你看 jetty:9.2.10 Dockerfile ,你会看到这一行:
    && sed -i '/jetty-logging/d' etc/jetty.conf \

    这很好地删除了引用 jetty-logging.xml 默认日志配置的整行。

    那该怎么办呢?

    使用 docker logs 读取日志

    Docker 使您可以访问容器的标准输出。

    在你这样做之后:
    docker run --name='abc' -d -p 10908:8080 -v /var/log/abc:/var/log/jetty me/abc:latest

    你可以简单地这样做:
    docker logs abc

    并会收到类似这样的东西:
    Running Jetty: 
    2015-05-15 13:33:00.729:INFO::main: Logging initialized @2295ms
    2015-05-15 13:33:02.035:INFO:oejs.SetUIDListener:main: Setting umask=02
    2015-05-15 13:33:02.102:INFO:oejs.SetUIDListener:main: Opened ServerConnector@73ec519{HTTP/1.1}{0.0.0.0:8080}
    2015-05-15 13:33:02.102:INFO:oejs.SetUIDListener:main: Setting GID=999
    2015-05-15 13:33:02.106:INFO:oejs.SetUIDListener:main: Setting UID=999
    2015-05-15 13:33:02.133:INFO:oejs.Server:main: jetty-9.2.10.v20150310
    2015-05-15 13:33:02.170:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/var/lib/jetty/webapps/] at interval 1
    2015-05-15 13:33:02.218:INFO:oejs.ServerConnector:main: Started ServerConnector@73ec519{HTTP/1.1}{0.0.0.0:8080}
    2015-05-15 13:33:02.219:INFO:oejs.Server:main: Started @3785ms

    使用 docker help logs更多细节。

    定制

    显然,您的另一个选择是恢复 jetty 的默认 Dockerfile 正在执行的操作,或者创建您自己的 dockerized Jetty。

    关于jetty - dockerized jetty 在哪里存储日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30259662/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com