gpt4 book ai didi

spring - 将 Kubernetes yaml 配置中定义的环境值传递给 java spring 配置文件

转载 作者:行者123 更新时间:2023-12-02 11:31:04 25 4
gpt4 key购买 nike

我的 Dockerfile 中有以下内容来运行我的 Springboot 应用程序:

ENTRYPOINT [ "java", "-jar", "/code/myapp/target/myapp.jar", "--spring.profiles.active=$ENV_PROFILE"]

我在我的 k8 YAML 配置中将我的环境变量 (ENV_PROFILE) 定义为:
 spec:
containers:
- name: myspringboot
image: myrepo/myapp:latest
imagePullPolicy: Always
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: ENV_PROFILE
value: "test"

但是,环境名称没有被注入(inject) java springboot 应用程序。它在日志中显示为“$ENV_PROFILE”。我还尝试通过添加 spring.profiles.active=$ENV_PROFILE 来使用 application.properties
这也不起作用。

最佳答案

您还可以默认覆盖 Spring 属性(以及应用程序属性中定义的其他属性),而无需指定要在属性文件中传递的环境变量。环境变量的优先级高于属性文件值。

另见 Spring Externalized Configuration .

例如:

 spec:
containers:
- name: myspringboot
image: myrepo/myapp:latest
imagePullPolicy: Always
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: SPRING_PROFILES_ACTIVE
value: "test"

关于spring - 将 Kubernetes yaml 配置中定义的环境值传递给 java spring 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55761930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com