如何将 application.properties 传递给 Docker 容器中的 Spring Boot 应用程序?

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

假设我们有一个简单的 Dockerfile,其中 my_sb_app.jar 是一个 SpringBoot 应用程序:

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

我想在每个 运行

上传递自定义 app.properties
docker run  my_image_name  /somewhere/on/my/host/app.properties

所以预期的最终命令(在容器内)可能与以下相同

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

将文件传递到 Docker 容器的标准方法是什么?
Docker 图像应该如何改变?

将文件从主机传递到容器的标准方法是使用卷:

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

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

在你的例子中:

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