【问题标题】:add external application.properties file to a dockerized spring boot web app inside tomcat将外部 application.properties 文件添加到 tomcat 内的 dockerized spring boot web 应用程序
【发布时间】: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 的评论。应该工作

标签: spring tomcat docker spring-boot


【解决方案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 文件夹。如果您可以安装它应该可以工作。