如何将 application.properties 文件提供给 Spring Boot Docker 映像作为输入

Posted

技术标签:

【中文标题】如何将 application.properties 文件提供给 Spring Boot Docker 映像作为输入【英文标题】:How to provide application.properties file to spring boot docker image as input 【发布时间】:2018-05-01 04:52:36 【问题描述】:

我有 spring boot docker 镜像。我在 application.properties 文件中提供了所有参数(环境变量)。如何在通过 docker image 作为输入运行应用程序时提供此文件。

请帮帮我。

【问题讨论】:

它是通用的 application.properties 还是您有 profie 特定的 application.properties?如果它不是特定于配置文件的,默认情况下会被选中。无需传递任何东西 感谢您的快速回复。它如何以及从哪个位置选择? resources/application.properties 对不起。这里我通过 docker image 运行应用程序。 从类路径中获取 【参考方案1】:

您可以使用 docker 卷并在 docker 映像中启动您的 Spring Boot 应用程序,例如

java -jar /path/to/volume/yourapp.jar --spring.config.location=file:/path/to/volume/application.properties

application.properties 然后外部化到与卷关联的文件夹。

【讨论】:

谢谢史蒂芬。您提供了我需要的确切解决方案。 不客气。您可以通过单击答案左侧的复选标记将其标记为已接受的答案。 docker run 命令会是什么样子?我很困惑为什么你在 java 命令行上有“yourapp.jar”。属性文件不应该在 docker run 命令中作为 -e 与卷挂载一起传递。我正在尝试对帖子中的外部文件做同样的事情。 ***.com/questions/51884167/… @haju 我回答中的命令是 docker 文件的一部分。我同意 jar 文件的路径令人困惑,因为它通常是 docker 映像的一部分,而不是位于卷中。至于属性文件,您还可以使用环境变量来指定从卷开始的相对路径。就我而言,它只是固定的,我希望该文件恰好位于卷的根目录中,并且必须将其命名为“application.properties”。

以上是关于如何将 application.properties 文件提供给 Spring Boot Docker 映像作为输入的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

logback-结合spring profile使用

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

如何将thinkcmf导入eclipse