我们有一个用Java编写的遗留应用程序,它使用ApacheStruts1.x和Spring2.x编写,我们希望对它们进行容器化。
我们遇到的问题是这个项目的配置方式。它是通过Maven属性和配置文件(每个环境一个)完成的,这些属性和配置文件被转换为属性文件。这些属性在编译时放置在WAR中。
在不修改项目代码的情况下,创建此应用程序映像的正确方法是什么?也就是说,配置在某种程度上是外部化的,例如,在环境变量中。也许应该在一卷书里?
到目前为止,我们已经实现了一个两阶段的Dockerfile,它首先使用特定的配置文件编译Maven,然后从Tomcat映像复制第二阶段的WAR。但是这样做,生成的码头形象并不是独立于环境的,这正是我们想要实现的。
谢谢!
发布于 2022-03-08 12:24:33
Spring为外部配置(名称-值对或等效的YAML内容)提供了基于HTTP资源的API。通过使用@EnableConfigServer注释,服务器可以嵌入到Spring应用程序中。
因此,将在一个容器上部署Spring服务器,该容器包含所有环境配置- https://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_server.html
一旦部署完毕,您就可以使用一个bootstrap.yml文件轻松地将您的应用程序停靠器映像部署到不同的环境中,该文件基于配置文件(dev/uat/ image /prod)接受云-config服务器。
###
server:
port: 9092
spring:
application:
name: application-name
cloud:
config:
urI: REPLACE_CLOUD_CONFIG_URI (https://<spring_cloud_config_url>:8888/)
profiles:
active: REPLACE_PROFILE (dev/uat/staging/prod)
management:
endpoints:
web:
exposure:
include: refreshhttps://stackoverflow.com/questions/71394825
复制相似问题