如何从不同的 docker 容器中读取 Spring Boot 应用程序属性?

Posted

技术标签:

【中文标题】如何从不同的 docker 容器中读取 Spring Boot 应用程序属性?【英文标题】:How to read spring boot application properties from a different docker container? 【发布时间】:2022-01-21 07:33:55 【问题描述】:

当应用程序作为 docker 容器运行时,我已经设法从服务器读取了 spring boot 属性文件,现在我想从不同的 docker 容器中读取属性文件,可以吗?

【问题讨论】:

【参考方案1】:

没有。容器永远无法从其他容器的文件系统中读取文件。

在 Spring 属性的特定情况下,they can be set as environment variables,我的经验是,这是在容器中使用它们的最佳方法。注入文件可能有点棘手,尤其是当您进入 Kubernetes 等集群环境时,并且维护一个包含来自多个地方的潜在输入的命令行参数列表也不能很好地工作。

例如,如果您希望 Spring 在备用 HTTP 端口上运行,您可以在 Dockerfile 中指定它:

# Set the Spring server.port property
ENV SERVER_PORT=3000

# Tell Docker about this
EXPOSE 3000

【讨论】:

以上是关于如何从不同的 docker 容器中读取 Spring Boot 应用程序属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不同主机之间移动 Docker 容器?

docker容器从入门到精通

如何将日志从 docker 容器转发到主机 journald/syslog 服务?

Sprin中Bean的顺序

尝试从主机连接到 mysql docker 容器时出现“读取初始通信数据包”错误

如何将docker容器添加到现有docker网络