【问题标题】:Using docker CMD instead of application.properties in hello world app在 hello world 应用程序中使用 docker CMD 而不是 application.properties
【发布时间】:2021-11-03 18:15:40
【问题描述】:

在我的 hello world 应用程序中,我使用应用程序属性来定义“名称”。 它工作正常,但我想在 docker CMD 中定义“名称”。

服务:

@Service
public class HelloService {

@Value("${name}")
private String name;

@GetMapping("/greeting")
    public String greeting() {
            return "Hello, " + name;
    }
}

application.properties:

name=Tommy

Dockerfile:

FROM openjdk:11
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

我正在尝试向 Dockerfile 添加如下内容:

CMD ${name} Tommy

我通过以下方式运行 docker:

docker run -p 8080:8080 hello-api:1.0

我怎样才能正确地做到这一点?

【问题讨论】:

    标签: spring-boot docker


    【解决方案1】:

    在 Dockerfile 中,使用 ENV 代替 CMD 之类的

    ENV NAME=Tommy
    

    那么你就可以直接在你的application.properties中使用这个环境变量了:

    name = ${NAME}
    

    您实现的其余部分将是相同的。

    【讨论】:

      猜你喜欢
      • 2018-02-02
      • 2015-10-16
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多