如何将 application.properties 传递给 Docker 容器中的 Spring Boot 应用程序?
Posted
技术标签:
【中文标题】如何将 application.properties 传递给 Docker 容器中的 Spring Boot 应用程序?【英文标题】:How to pass application.properties to SpringBoot app in Docker container? 【发布时间】:2021-03-21 18:23:55 【问题描述】:假设我们有一个简单的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 映像?
【问题讨论】:
【参考方案1】:将文件从主机传递到容器的标准方法是使用卷:
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
【讨论】:
以上是关于如何将 application.properties 传递给 Docker 容器中的 Spring Boot 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
未从 application.properties 中提取 Spring Boot JOOQ sql 方言
Spring boot 的 properties 属性值配置 application.properties 与 自定义properties