将外部 application.properties 文件添加到 tomcat 内的 dockerized spring boot web 应用程序

Posted

技术标签:

【中文标题】将外部 application.properties 文件添加到 tomcat 内的 dockerized spring boot web 应用程序【英文标题】:add external application.properties file to a dockerized spring boot web app inside tomcat 【发布时间】:2017-10-16 13:42:24 【问题描述】:

我在 tomcat /webapps 文件夹中有一个 tomcat 的 docker 映像和我的 Spring Boot Web 应用程序。该应用程序在文件夹中打包了自己的 application.properties 文件。 我想为运行 docker 映像的任何人提供选项,以挂载它自己的 external application.properties 文件,供 Spring Boot Web 应用程序运行。

如何做到这一点? 非常感谢

【问题讨论】:

您找到解决方案了吗?我正在尝试对 docker container 做同样的事情。 T @haju 看看 Essex Boy 的评论。应该工作 【参考方案1】:
--spring.config.location=file:/config/application.properties

可能会放在您在启动 docker 映像的文件中指定的 JAVA_OPTS 环境变量中。

【讨论】:

【参考方案2】:

类似 agnul 的回答,你可以从 docker 引擎的主机上挂载一个卷,见 here

类似:

docker run -d -P --name web -v /config:/config ...

当您启动 JVM 时,您将系统属性赋予 /config

java -jar myproject.jar --spring.config.location=file:/config/application.properties

【讨论】:

【参考方案3】:

您可以尝试配置您的应用程序类路径以引用您的 docker 容器将作为卷挂载或绑定到主机文件系统并将您的配置文件放在那里的路径。

【讨论】:

可以通过将带有外部 application.properties 的卷挂载到 tomcat 中的正确文件夹以便 spring boot 查找和读取来完成吗? 据我记得 spring 在你的 webapp 文件夹中寻找一个 config 文件夹。如果您可以安装它应该可以工作。

以上是关于将外部 application.properties 文件添加到 tomcat 内的 dockerized spring boot web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

未从 application.properties 中提取 Spring Boot JOOQ sql 方言

Spring boot 的 properties 属性值配置 application.properties 与 自定义properties

Jar不包含我的课程文件gitlab-ci

logback-结合spring profile使用

日志记录:在 Spring Boot 中使用 log4j2.properties 文件实现 Log4j2

将外部图像路径添加到基于 PhoneGap 的应用程序的外部列表后,外部图像路径仍然不显示