Spring Boot im Docker Container - Logback wird nicht verwendet

8u3631984

Bekanntes Mitglied
Hallo zusammen
ich baue meine Spring Boot Application und packe auch eine Lombok Datei in den Container :
Java:
FROM openjdk:11-jdk-slim

COPY *.jar /app/calendar-importer.jar
ADD logback.xml /app/logback.xml
COPY application.properties /app/application.properties

ENTRYPOINT ["java", "-jar","/app/calendar-importer.jar"]
Allerdings wird diese komplett ignoriert.
Auch wenn ich den Entrypoint erweitere :
Java:
FROM openjdk:11-jdk-slim



COPY *.jar /app/calendar-importer.jar

ADD logback.xml /app/logback.xml

COPY application.properties /app/application.properties



ENTRYPOINT ["java","-Dlogback.configurationFile=/app/logback.xml", "-jar","/app/calendar-importer.jar"]

Klappt es nicht. Hat jemand eine Idee ?
 
Warum möchtest Du Lombok überhaupt im Container haben? Lombok agiert zur compile-time und wird nach dem kompilieren nicht mehr gebraucht.

Edit: Hast Du in dem Post ggf. Lombok mit Logback verwechselt?
 
Also so auf den ersten Blick sieht es ok aus. Das Config-File wird korrekt angegeben so wie ich das sehe.

Aber was mich etwas stört ist das:
COPY *.jar /app/calendar-importer.jar

Ich kenne es eigentlich so, dass bei COPY das Zielverzeichnis angegeben wird. Also wäre das eher:
COPY *.jar /app/

Die Frage ist daher, was dieses COPY von Dir genau im Detail macht. Hast Du denn einfach mal geprüft, was da als Ergebnis heraus gekommen ist? Ob die Dateien alle da sind wie erwartet?
 
Ist es also nur eine einzige (fat) jar und nicht mehrere? Und dieses jar alleine kannst Du entsprechend starten und da funktioniert das Logging wie gewünscht?

Und kommen denn irgendwelche Meldungen beim Start? Das Problem ist, dass wir hier kaum Informationen haben zu dem Problem und wie es sich genau darstellt.
 
Du hast recht mein Fehler sorry.
Java:
    <logger name="de.calendar.client.CalendarClient" level="WARN"/>
    <logger name="de.calendar.importer.utils.parser.ParserUtils" level="WARN"/>
    <logger name="de.calendar.importer.utils.downloader.FileDownloader" level="WARN"/>

    <root level="WARN">
        <appender-ref ref="STDOUT"/>
    </root>

So sieht ein Ausschnitt meiner Logback aus.
Im Log tacchen aber auch Info Meldungen auf.
 
Es handelt sich um eine Spring Boot App
Java:
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, XADataSourceAutoConfiguration.class})
@Log4j2
public class CalendarImporter implements CommandLineRunner {
 
Konntest Du das mit dem -Dlogging.config=.... ausprobieren können? Bzw. was da sonst noch in dem verlinkten Thread gestanden hat?
Ja damit hat es tatsächlich funktioniert . Mein Dockerfile sieht nun so aus :

Java:
COPY *.jar /app/calendar-importer.jar
COPY logback.xml /app/logback.xml
COPY application.properties /app/application.properties

ENTRYPOINT ["java", "-jar","/app/calendar-importer.jar", "--logging.config=/app/logback.xml"]

Vielen Dank für eure hifle
 

Zurück
Oben