变量的Dockerfile Spring Boot属性不起作用

格雷马什

我似乎无法通过Dockerfile中的变量来使Spring启动属性起作用。这就是我在做什么:

ENTRYPOINT exec java -Dapp-version=$app_version -jar /app.jar

如果我RUN echo "App Version: $app_version"在Dockerfile中执行操作,则会得到正确的输出,如App Version: 1.70.0

如果我手动输入以下版本:ENTRYPOINT exec java -Dapp-version=1.70.0 -jar /app.jar则正确注入值。

实际上,如果我这样做,RUN echo "ENTRYPOINT exec java -Dapp-version=$app_version -jar /app.jar"我会得到类似的输出

Step 9/10 : RUN echo "ENTRYPOINT exec java -D******ion=$app_version -jar /app.jar"
 ---> Running in b6c3cd9bb69a
ENTRYPOINT exec java -D******ion=1.70.0 -jar /app.jar

当我使用Dockerfile变量时,Spring内部的值被设置为空字符串。当我将其硬编码为1.70.0时,它将被正确设置。我想念什么?

我尝试了许多不同的方法,包括使用{},引号等。

编辑:添加了Dockerfile

FROM java:8
ARG app_version

RUN echo -------------------
RUN echo "App Version: $app_version"
RUN echo -------------------

VOLUME /tmp
COPY ./build/libs/mango-sticky-rice-1.0.0-SNAPSHOT.jar /app.jar
RUN bash -c 'touch /app.jar'

ENTRYPOINT exec java -Dapp-version=$app_version -jar /app.jar
格雷马什

此答案有效:https : //stackoverflow.com/a/49889134/3088642这是我的Dockerfile的样子:

FROM java:8
ARG app_version

RUN echo -------------------
RUN echo "App Version: ${app_version}"
RUN echo -------------------

VOLUME /tmp
COPY ./build/libs/mango-sticky-rice-1.0.0-SNAPSHOT.jar /app.jar
RUN bash -c 'touch /app.jar'

RUN echo "#!/bin/bash \n java -Dapp-version=${app_version} -jar /app.jar" > ./entrypoint.sh
RUN chmod +x ./entrypoint.sh

RUN cat ./entrypoint.sh

ENTRYPOINT ["./entrypoint.sh"]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章