"tail -F" не работает после нескольких часов работы в докере - PullRequest
0 голосов
/ 10 октября 2019

у нас есть веб-приложение java, которое работает на пристани, и приложение упаковано как образ докера и работает на AWS ECS. Мы хотим вывести журналы приложения через драйвер журнала докера. Когда приложение упаковано через Dockerfile, оно выполняет что-то вроде следующего:

FROM .....

# Prepare the environment variables
....

# Install necessary packages
....

CMD ["/usr/bin/docker_start.sh"]

, а содержимое docker_start.sh выглядит примерно так:

# Start jetty server as a background process
....

# Self evaluation after the jetty server is started
....

tail -F /var/logs/my_application/application.log

Приложение написано на Javaи записывает логи через logback с RollingFileAppender. Приложение определяется следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/var/logs/my_application/application.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- daily rollover -->
        <fileNamePattern>/var/logs/my_application/application.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
        <!-- keep 30 days' worth of history capped at 3GB total size -->
        <maxHistory>30</maxHistory>
        <totalSizeCap>3GB</totalSizeCap>
    </rollingPolicy>
    <encoder>
        <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
</appender>

Проблема заключается в том, что после развертывания приложения в AWS ECS журналы приложений вначале работают нормально и могут исчезнуть через несколько часов. Когда мы регистрируемся в контейнере и ps процесс, процесс tail -F /var/logs/my_application/application.log все еще там, но кажется, что он больше не работает.

Я прочитал некоторые связанные вопросы, такие как:

По моему мнению, наша проблема может быть похожа на эти вопросы, но детали разные. Я не совсем уверен, как отнести их решения к моим. Было бы полезно, если бы кто-то мог указать на проблему и дать подсказки о том, как ее решить. Большое спасибо!

...