spring - Docker Compose - Spring Boot - 容器外的 logback
问题描述
我曾尝试在容器外写入日志文件,但失败了。我正在使用 docker-compose
码头工人-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 中提供了必要的文件夹权限。
解决方案
我在 CentOS 7 中更新了 sestatus。它有效。
setenforce 0
将状态从强制更改为允许
推荐阅读
- javascript - 重定向防止设置cookie?
- javascript - 为什么此代码以多种不同方式使用?
- reactjs - 反应路由器身份验证模式
- c# - .NET Web API(非核心)- 在实体框架控制器中创建补丁操作
- javascript - 量角器脚本太快,覆盖上的元素未处理
- javascript - 什么是用 Javascript 写 { }?
- angular - 如何迭代一组值并调用返回承诺的服务并等待Angular 6中的每个结果
- python - 如何在 Selenium Webdriver Python 3 中使用 Chrome 配置文件
- python - 有没有办法通过 JSON 密钥文件本身而不是文件路径进行 Google Cloud Python 身份验证?
- javascript - 如何使用 onClick 事件存储数值(或链接数)?