Probleme mit Spring Boot Docker und Bootstrap

bueseb84

Mitglied
Hallo zusammen.
Ich habe eine kleine Spring Boot Anwendung geschrieben, die ich zum Testen gerne in einem Docker Container starten möchte.
Noch kurz zu meinem Setup : Ich habe auf meinem Raspberry Pi ein JFrog Artifactory laufen.

Die Spring Boot Anwenung soll einen einfache Template Seite (index.html) zurücliefern, die Bootstrap enthällt.
Die Anwenung is so konfiguriert, dass sie auf dem Port 2080 läuft. Innerhalb des Dockerfiles wird der Port auf 8080 (Host Port) gemappt. Damit klappt alles - > also die Seite wird mit bootstrap angezeit.
Ändere ich den Host Port jedoch so wird bootstrap nicht mehr verwendet und die Seite wir unformatiert angezeit.

Hier mal meine Konfguration :
Dockerfile :
Java:
FROM java:8-jdk-alpine

ARG HOST
ARG VERSION

RUN mkdir -p /importer/config
COPY docker/application.properties /importer/config

RUN wget -U admin:password ${HOST}/artifactory/libs-snapshot-local/importer/${VERSION}/maven-metadata.xml && \
    LATEST_VERSION=$(grep -m1 'value' maven-metadata.xml | sed 's/<value>//g' | sed 's/<\/value>//g' | sed 's/ //g') && \
    wget -U admin:password "${HOST}/artifactory/libs-snapshot-local/importer/${VERSION}/importer-${LATEST_VERSION}.jar" && \
    mv importer-*.jar /importer/importer.jar

EXPOSE 8080
CMD ["java", "-jar", "/importer/importer.jar", "--spring.config.location=/importer/config/"]

Hier mein Docker Compose File :
Java:
version: '3'
services:

  calendar_importer:
    image: "importer:1.0-SNAPSHOT"
    container_name: "importer"
    ports:
      - 8080:2080

So mit der Konfiguration funktioniert es. Ändere ich im Docker Compose File den Host Port von 8080 auf z.B 8081 bekomme ich keine bootstrap Elemente mehr zu sehen.

Kan mir jemand einen Tipp geben.

Vielen Dank für eure Unterstützung !!
 
Bootstrap ist ja eine CSS Lib? Schau mal in dem HTML, was du angezeigt bekommst, wie die CSS referenziert wird. Evtl. steht da hart 8080 drin. (oder irgendwas anderes, was nicht funktioniert).
 
Danke für eure schnellen Antworten. Also ich verwende noch andere Container, daher kann ich nur einen auf dem Host Port 8080 lafuen lassen.

Das ist der Auszug aus dem HTML :

Code:
<head>
    <link rel="stylesheet" href="/webjars/bootstrap/4.4.1/css/bootstrap.min.css"/>
    <script src="webjars/jquery/4.4.1/bootstrap.min.js"></script>
    <script src="webjars/jquery/3.4.1/jquery.min.js"></script>
</head>
 
Das sollte eigentlich klappen - schau mal, ob du, wenn du den Port auf 8081 änderst auf diese URLs drauf kommst. (Die index.html wird ja angezeigt, soweit ich dich verstehe)
 
Habe ich gerade ausprobiert. Leider das geliche Verhalten.
Also die Seite wird angezeigt (ich bekomme keinen Fehler) nur die Bootstrap Elemente werden nicht angezeigt.
 
Ich habe den Fehler gefunden :
Es lag an der Version ;
Ich der pom habe ich
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.4.1-1</version>
</dependency>

während ich im template
<link rel="stylesheet" th:href="@{/webjars/bootstrap/4.4.1/css/bootstrap.min.css}"/>

verwendet habe

vielen dank für eureMithilfe
 

Zurück
Oben