我有一个dockerfile,可以在命令行上创建一个用-Dspring_profiles_active=test
启动Spring Boot应用程序的映像。现在我希望能够根据环境覆盖配置文件。我原以为在启动容器时传递像-e SPRING_PROFILES_ACTIVE=dev
这样的环境变量会覆盖命令行设置,但它什么都不做。如果我通过-e spring_profiles_active=dev
我得到两个,如Spring Boot日志中所示:... : The following profiles are active: dev,test
,而不是我想要的。
我认为优先顺序是OS环境变量,然后命令行(即-D)然后是application.properites,根据文档:Externalized Configuration
编辑:纠正上面的拼写错误。此外,我正在使用Spring Boot v1.5.9.RELEASE, Spring v4.3.13.RELEASE
,如果我删除-Dspring_profiles_active=test
命令行选项,则OS环境变量会按预期传递到应用程序中。
干杯, 马特
答案 0 :(得分:0)
使用
-e SPRING_PROFILES_ACTIVE=dev
而不是
-e SPRING_PROFILE_ACTIVE=dev
是PROFILES