spring-boot - spring boot - docker - Logback - 非root用户 - 权限被拒绝错误

标签 spring-boot docker

我有 dockerfile

FROM openjdk:8-jdk-alpine as build
WORKDIR /workspace/app

COPY . /workspace/app

RUN --mount=type=cache,target=/root/.gradle ./gradlew clean build -x test
RUN mkdir -p build/dependency && (cd build/dependency; jar -xf ../libs/*.jar)

WORKDIR /workspace/app/build/dependency


FROM openjdk:8-jdk-alpine
RUN addgroup -S demo && adduser -S demo -G demo
VOLUME /tmp
USER demo
ARG DEPENDENCY=/workspace/app/build/dependency

COPY --from=build ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY --from=build ${DEPENDENCY}/META-INF /app/META-INF
COPY --from=build ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-noverify","-XX:TieredStopAtLevel=1","-cp","app:app/lib/*","-Dspring.main.lazy-initialization=true","hello.Application"]

我的应用程序 Prop 有

logging.file.name=pafy.log
logging.file.path=logs

错误:

$ docker run -p 8080:8080 -t my/pmy-docker 04-07-2021 10:50:30.068
[main] ERROR o.s.boot.SpringApplication.reportFailure - Application
run failed java.lang.IllegalStateException: Logback configuration
error detected: ERROR in
ch.qos.logback.core.rolling.RollingFileAppender[FILE] -
openFile(pafy.log,true) call failed. java.io.FileNotFoundException:
pafy.log (Permission denied)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:169)

请问如何解决这个问题?

注意:我使用 demo 用户而不是 root。这可能是问题所在

最佳答案

我做了这个改变

RUN addgroup -S demo && adduser -S demo -G demo
RUN mkdir -p /logs
RUN chown demo /logs

VOLUME /logs
USER demo

关于spring-boot - spring boot - docker - Logback - 非root用户 - 权限被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68244168/

相关文章:

php - Laravel Sail数据库连接被拒绝错误

java - 通过构造函数创建 bean 时出错 Bean 实例化失败

spring - Togglz 控制台错误 403 Spring Boot

java - Spring Boot在保存后为关系实体返回空值

linux - docker 容器第一次执行完成后如何自定义其卷和端口?

docker - 如何在 Centos 上安装特定版本的 Docker?

bash - 商店软件 6 : How to set boolean config values with Docker exec in Git Bash

java - Spring 启动: FeignClient with SSL (p12)

java - Spring Boot 应用程序关闭

docker - 通过Vault Docker镜像运行时,无法 curl 到以服务器模式运行的Vault服务器