У меня есть контейнер, выполняющий процесс Java и записывающий журналы Java в определенный том, объявленный внутри контейнера в Dockerfile:
Dockerfile:
FROM myRegistry/jdk:1.8.181
VOLUME /opt/logs
ENTRYPOINT ["java",","/opt/application/myapp.jar", "--spring.profiles.active=server"]
Как вы можете видеть, я объявляю этот объем /opt/logs
внутри контейнера. (внутри моего java-приложения эта папка используется пользователем при входе в систему для записи ошибок)
Но при запуске контейнера через несколько секунд происходит сбой, говоря, что нет доступа к этой папке "permission denied"
:
Caused by: java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - openFile(/opt/logs/myapp.log,true) call failed. java.io.FileNotFoundException: /opt/logs/myapp.log (Permission denied)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:153)
at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSpecificConfig(AbstractLoggingSystem.java:56)
at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:46)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:106)
at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:266)
... 18 more
Мне удалось получить доступ к контейнеру до того, как он опустился, чтобы увидеть разрешения:
[myuser@8d39ada92190 opt]$ ll
total 49100
-rwxrwxrwx. 1 myuser mygroup 50273298 Sep 19 15:57 myapp.jar
drwxr-xr-x 2 65534 65534 4096 Oct 1 13:52 logs
Я заметил, что папка "logs
" не является обычной для обычного пользователя, и группа (myuser / mygroup) но с другими странными 65534
Есть идеи ??