Spring docker-compose 和 Kubernetes 之间的 Cloud Config 行为差异

Spring Cloud Config behavior difference between docker-compose and Kubernetes

我有一个在我的应用程序中使用的基本 spring 云微服务。每个配置和发现服务都构建为 docker 容器,当我使用 docker-compose 到 运行 它们时,一切正常,因为配置服务器直接从挂载的加载属性文件并且在日志中显示以下内容:

2021-11-16 14:29:51.691  INFO 1 --- [nio-8888-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-11-16 14:29:51.691  INFO 1 --- [nio-8888-exec-2] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2021-11-16 14:29:51.713  INFO 1 --- [nio-8888-exec-2] o.s.web.servlet.DispatcherServlet        : Completed initialization in 22 ms
2021-11-16 14:29:51.920  INFO 1 --- [nio-8888-exec-2] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/data/application-container.properties
web-configuration-1  | 2021-11-16 14:29:51.921  INFO 1 --- [nio-8888-exec-2] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/data/hazelcast-service.properties

当我 运行 kubernetes 中的同一个容器时,容器正常运行但不加载 属性 文件。我在某处读到配置文件需要是本地的,我确认是本地的。

因此,当我的发现服务出现时,它没有分配端口号,因此在随机端口上启动。知道是什么导致 kubernetes 中的这个容器 运行ning 没有加载这些应用程序属性吗?

这是为了提高可见度而发布的社区 Wiki 答案。随意扩展它。

@sg1973 使用 minikube,它在主机和实际的 docker 容器之间添加了一个层。因此,当尝试挂载本地文件夹时,它实际上是从 minikube 实例挂载文件夹,该文件夹是空的。

问题已通过将代码作为容器本身的一部分解决。