2

I have the 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"]

my application props has

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

Error:

$ 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)

Please can I ask, how to fix the issue?

Note: I use demo user instead of root. could this be the problem

Software Engineer
  • 15,457
  • 7
  • 74
  • 102
  • 1
    https://stackoverflow.com/a/45553149/1063509 could you please check this answer – Ishikawa Yoshi Jul 05 '21 at 10:58
  • thanks. I made the change RUN addgroup -S demo && adduser -S demo -G demo RUN mkdir -p /logs RUN chown demo /logs VOLUME /logs USER demo –  Jul 05 '21 at 15:52

1 Answers1

2

I made this change

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

VOLUME /logs
USER demo