【问题标题】:How to set property name with dot from docker compose?如何使用 docker compose 中的点设置属性名称?
【发布时间】:2020-01-30 05:36:45
【问题描述】:

我需要设置名称为com.somesite.apikey 的环境变量。 我在我的 doccker-compose.yml

中尝试这些变体
environment:
      com.somesite.apikey: 98989897979
      com_somesite_apikey: 98798709089

但是方法System.getProperty("com.somesite.apikey") 返回空。 谁能帮我解决这个问题?

【问题讨论】:

  • "com_somesite_apikey" 这应该可以。您是否尝试对容器执行“echo $com_somesite_apikey”。
  • 它使用下划线表示法,但我的代码需要使用点表示法访问属性,例如在这种情况下System.getProperty("com.somesite.apikey")
  • 我认为你不能,因为 dot 不是 shell 标识符中的有效字符。如果您尝试“回显 $com.somesite.apikey”,它将打印“.somesite.apikey”

标签: java spring docker docker-compose yaml


【解决方案1】:

Spring Boot documentation on setting properties注明环境变量的“拼写”必须是

环境变量:大写格式,下划线作为分隔符。

所以你应该可以设置

environment:
  COM_SOMESITE_APIKEY: 98798709089

【讨论】:

  • 这仅在使用@Value("${com.somesite.apikey}")访问属性时有效
  • 但是当我试图以这种方式获得财产System.getProperty("com.somesite.apikey") 它不起作用
  • 环境变量和系统属性不同,可以使用System.getenv()获取环境变量。
  • 好的,换句话说,我有我通过调用System.getProperty("com.somesite.apikey")来访问属性的代码。我应该在 docker compose 文件中指定什么来设置具有此名称的属性?
猜你喜欢
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
  • 2015-07-07
  • 2021-08-22
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 2020-02-18
相关资源
最近更新 更多