【问题标题】:Dockerfile - get, modify and set env variableDockerfile - 获取、修改和设置环境变量
【发布时间】:2021-12-28 11:10:34
【问题描述】:

可能非常简单的问题,但我找不到解决方案。 我有一些环境变量存储一些版本号。 目前它只是 11.1.1。 我需要修改它以获取 11.1 并保存到 env ABC_VER。 因此,可以在构建我的容器后执行此操作,如下所示:

export ABC=$(echo $ABC_VERSION | head -c 4)

我试图在我的 dockerfile 中做同样的事情:

ENV ABC_VER $(echo $ABC_VERSION | head -c 4)

但是在构建并运行 echo $ABC_VER 之后,我得到了:

$(echo 11.1.1 | head -c 4)

而不是 11.1

不确定,如何解决?

【问题讨论】:

    标签: dockerfile environment-variables


    【解决方案1】:

    Docker 的ENV 指令在这个意义上有点受限。据我所知,您可以做的最高级的事情是environment replacement,但这在这里没有多大帮助。

    我能想到两个低调的选择:

    1. 使用RUN 来评估您正在使用的表达式,并将带有结果的export 指令附加到适当的shell 启动脚本(例如,/etc/profile(或者最好是/etc/profile.d 下的单独文件))
    2. Dockerfile 中使用ARG MYARG 并提供格式正确的版本为--build-arg 并使用ENV ABC_VER=${MYARG}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 2018-10-22
      • 1970-01-01
      • 2019-09-11
      • 1970-01-01
      • 2010-09-23
      相关资源
      最近更新 更多