Spring Boot Docker Image erstellen und mit docker-compose konfigurieren

8u3631984

Bekanntes Mitglied
Hallo,
ich ertselle von meiner Spring Boot Application ein Dokcer image :
Java:
docker {
    setDockerfile(file("Dockerfile"))

    files("$buildDir/libs/${project.name}.jar", "$buildDir/resources/main/application.yml", "$buildDir/resources/main/banner.txt")
    buildArgs(mapOf("JAR_FILE" to "${project.name}.jar", "APPLICATION_CONFIG" to "application.yml" ))
}

Hier ist das Docker File :
Code:
FROM openjdk:17.0.1-jdk-slim

ARG JAR_FILE
ARG APPLICATION_CONFIG

COPY ${JAR_FILE} cms/media-cms.jar


ENTRYPOINT ["java","-jar","cms/media-cms.jar", "--spring.config.location=file:///cms/config//application.yml", "-Dlogging.config=file:///cms/condif/logback.xml"]

Dazu verwende ich das Gradle Plugin com.palantir.docker.

Ich möchte nun diese Image in einer Docker Compose Umgebung verwenden. Ich möchte allerdings die application.yml im Container austauschen. Dazu habe ich mir folgendes überlegt. Ich mounte an die Stelle /cms/config einfach ein Verzeichnis , welches lokal auf meiner Platte liegt und die application.yml enthällt.
Akllerdings klappt das nicht. Die bestehende Datei wird nicht überschrieben.

Gibt es evtl. einen anderen Weg ?
 
Spring Boot kann auch Umgebungsvariablen nutzen. Also kann man im Dockerfile ein Umgebungsvariable zur application.yml setzen und diese ggf. im Dockercompose-file überschreiben. Natürlich muss man die dann auch mounten, damit sie in der Umgebungsvariable gefunden werden kann.
 

Zurück
Oben