Dockerfile Java Spring Boot - 如何为日志添加文件夹

Dockerfile Java Spring Boot - how to add folder for logs

我想对我的 spring 启动应用程序进行 docker 化。在应用程序主文件夹中,我有日志文件夹:

(spring app main folder)/data/log/zocbot/

在我的 log4j2.xml 我有:

    <Properties>
    <Property name="logDirectory">./data/log/zocbot/</Property>
    <Property name="logDirectoryArch">./data/log/arch/zocbot/</Property>
    <Property name="logFileNameMain">bot-main</Property>
    </Properties>

然后我尝试使用 Dockerfile:

FROM azul/zulu-openjdk-alpine:11
RUN addgroup -S spring && adduser -S spring -G spring
ADD ./data/log/zocbot/ /log/
#VOLUME ["/data/log/zocbot/"]
USER spring:spring
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

但我收到错误消息:


 main ERROR Unable to create file ./data/log/zocbot//bot-main.log java.io.IOException: Could not create directory /data/log/zocbot

我找不到解决方案

问候

我更改了我的 dockerfile(添加 mkdir 和 chmod),现在它可以正常工作了:

FROM azul/zulu-openjdk-alpine:11

RUN addgroup -S spring && adduser -S spring -G spring

RUN mkdir -p data/log/zocbot
RUN find data/log/zocbot/ -type d -exec chmod 0777 {} \;
RUN find data/log/zocbot/ -type f -exec chmod 777 {} \;

USER spring:spring
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} bot-app.jar
ENTRYPOINT ["java","-jar","/bot-app.jar"]