Dockerfile ENV var字符替换

时间:2019-11-11 23:52:38

标签: docker dockerfile

我可以进行字符替换以根据另一个值设置一个ENV值吗?

我的情况...

ENV tableauVersion 2019-4-0
ENV tableauVersionDots 2019.4.0

ENV tabcmdURL https://downloads.tableau.com/esdalt/${tableauVersionDots}/tableau-tabcmd-${tableauVersion}_all.deb

很显然,我希望能够基于tableauVersionDots tableauVersion变量来定义ENV(例如,将-替换为.

1 个答案:

答案 0 :(得分:0)

不。在Dockerfile ENV语句中唯一可以做的替换是the Dockerfile documentation中显示的替换:$variable${variable}${variable:-default}${variable:+yes it is set}

对于这样的URL,您实际上不需要在环境变量中使用它们。如果您确实需要计算然后取回它,则可以在单个RUN语句中完成它

RUN tableauVersionDots=$(echo "$tableauVersion" | sed 's/-/./g') \
 && curl -LO https://downloads.tableau.com/esdalt/${tableauVersionDots}/tableau-tabcmd-${tableauVersion}_all.deb

变量设置将无法在此RUN语句之后继续存在(并且在shell空间中,我什至都没有为export感到烦恼),但是仅获取URL可能就可以了。