springboot 使用 deployment.yaml 的 env 变量

  • Choerodon平台版本:0.13.0

  • 运行环境(如localhost或k8s):aliyun

  • 遇到问题时的前置条件:

  • 问题描述:

    使用 配置映射 ConfigMap 添加环境变量后在SpringBoot bootstrap.properties 不能读取到设置的值。如 active=dev,后在 bootstrap.properties 引用 spring.profiles.active=${active} 一直为空

  • deployment.yaml 的数据也已经有了

    "env": [
            {
              "name": "spring.cloud.nacos.config.namespace",
              "valueFrom": {
                "configMapKeyRef": {
                  "name": "game-data-center",
                  "key": "nacos-namespace"
                }
              }
            },,
    
  • 原因分析:

    而我在Dockerfile 文件直接填写 -jar /app.jar --active=dev,却能正常取到dev 值。

  • 疑问:

    但我查看官方的 asgard-service 源码 Dockerfile 是没有添加任何变量

exec容器或者通过平台的pod运行命令的功能直接env查看一下这个环境变量生效了没,确定下是不是引入的configMap的方式不对或者环境变量哪里覆盖了