Docker Compose-春季启动-在容器外登录

时间:2020-06-20 18:38:25

标签: spring spring-boot docker docker-compose logback

我尝试将日志文件写入容器外部,但是失败了。我正在使用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 :(得分:0)

我已经在CentOS 7中更新了sestatus。

alter table

将状态从“强制”更改为“允许”