Docker Compose - Spring boot - выход за пределы контейнера - PullRequest
0 голосов
/ 20 июня 2020

Я попытался записать файлы журнала вне контейнера, но это не удалось. Я использую 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.

1 Ответ

0 голосов
/ 22 июня 2020

Я обновил статус в CentOS 7. Это сработало.

setenforce 0

Статус изменен с принудительного на разрешающий

...