Dockerfile Java Spring Boot - How to Add Folder for Logs

Dockerfile Java Spring Boot - How to Add Folder for Logs

I want to dockerize my spring boot app. In app main folder i have folder for logs:

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

In my log4j2.xml i have:

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

And i try with 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"]

but i receive error:


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

I cant find solution

regards

1

1 Answer

I changed my dockerfile (add mkdir and chmod) and now it works as i wanted:

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"]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Maya Lin-Takahashi
Author

Maya Lin-Takahashi

Maya is a hardware enthusiast who tests and reviews smart home devices, smartphones, wearables, and audio gear. She focuses on practical consumer value and build quality.