diziaq
diziaq

Reputation: 7785

How to pass application.properties to SpringBoot app in Docker container?

Assume we have a simple Dockerfile where my_sb_app.jar is a SpringBoot application:

FROM bellsoft/liberica-openjdk-alpine:11.0.9-12    
WORKDIR /app    
COPY target/my_sb_app.jar /app    
EXPOSE 8080    
ENTRYPOINT java -jar my_sb_app.jar

I would like to pass custom app.properties on each run

docker run  my_image_name  /somewhere/on/my/host/app.properties

so the expected final command (inside the container) could be identical to the following

java -jar my_sb_app.jar --spring.config.location=%%file_with_contents_of_app.properties%%

What is the standard way of passing a file into a Docker container?
How the Docker image sould be changed?

Upvotes: 1

Views: 2726

Answers (1)

Carlos Rafael Ramirez
Carlos Rafael Ramirez

Reputation: 6234

The standard way to pass files from host to the container is with volumes:

https://docs.docker.com/storage/bind-mounts/

https://docs.docker.com/storage/volumes/

In your example:

docker run -v /somewhere/on/my/host/app.properties:/opt/app.properties my_image_name 

java -jar my_sb_app.jar --spring.config.location=/opt/app.properties

Upvotes: 1

Related Questions