繁体   English   中英

Dockerfile - 获取、修改和设置环境变量

[英]Dockerfile - get, modify and set env variable

可能非常简单的问题,但我找不到解决方案。 我有一些环境变量存储一些版本号。 目前它只是 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

不确定,如何解决?

Docker 的ENV指令在这个意义上有点受限。 据我所知,您可以做的最先进的事情是环境替换,但这在这里没有太大帮助。

我可以想到两个低悬的选择:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM