Я попытался записать файлы журнала вне контейнера, но это не удалось. Я использую docker -compose
docker -compose.yml
gateway-service:
container_name: gateway-service
build:
context: .
dockerfile: core-gateway/gateway/Dockerfile
expose:
- 8080
ports:
- 8080:8080
volumes:
- /usr/app/home/inspectionimage:/home/inspectionimage
- /usr/app/home/staging:/home/staging
- /usr/app/home/production:/home/production
networks:
- qa-network
Dockerfile
FROM openjdk:8
RUN rm -rf gateway-0.0.1-SNAPSHOT.jar
COPY core-gateway/gateway/target/gateway-0.0.1-SNAPSHOT.jar gateway-0.0.1-SNAPSHOT.jar
VOLUME "/home/production"
VOLUME "/home/staging"
CMD ["java","-jar","-Dspring.profiles.active=staging","gateway-0.0.1-SNAPSHOT.jar"]
logback-spring. xml
<appender name="prod-file"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/home/production/log-gateway-prod.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/home/production/log-gateway.%d{yyyy-MM-dd}.%i.log.gz
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
при запуске docker команда compose получает ошибку
Caused by: java.lang.IllegalStateException: Logback configuration error detected:
gateway-service | ERROR in ch.qos.logback.core.rolling.RollingFileAppender[prod-file] - openFile(/home/production/log-gateway-prod.log,true) call failed. java.io.FileNotFoundException: /home/production/log-gateway-prod.log (Permission denied)
Я предоставил необходимые права доступа к папке в CentOS 7.