gpt4 book ai didi

docker - 使用 Docker 将环境变量传递给 Spring Boot 应用程序不起作用

转载 作者:行者123 更新时间:2023-12-03 07:07:42 24 4
gpt4 key购买 nike

我正在尝试将环境变量传递给 Spring Boot 应用程序,但它似乎不起作用。

Docker运行命令:

docker run my-image -e TEST_VAR='testing'

Spring Boot main():

@SpringBootApplication
public class MyApplication {

public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(MyApplication.class, args);

//Read environmental variables:
Map<String, String> env = System.getenv();
System.out.println("TEST_VAR: "+env.get("TEST_VAR"));


}
}

输出:

TEST_VAR: null

如何使用 Docker 成功传递环境变量?

最佳答案

docker run确实提到了

Additionally, the operator can set any environment variable in the container by using one or more -e flags, even overriding those mentioned above, or already defined by the developer with a Dockerfile ENV.

If the operator names an environment variable without specifying a value, then the current value of the named variable is propagated into the container’s environment:

但例子是:

docker run -e "deep=purple" -e today --rm alpine env

因此请检查您的报价和参数顺序(如 BMitch 所观察到,图像名称之后完成的任何参数都将作为 CMD 传递到您的图像 ENTRYPOINT 命令,这不是你想要的):

docker run -e "TEST_VAR=testing" my-image 

关于docker - 使用 Docker 将环境变量传递给 Spring Boot 应用程序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50035024/

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