在构建容器时是否可以自省图像值?

时间:2019-12-03 18:20:43

标签: docker dockerfile

例如,假设我们有这个

LABEL interpreter_version="3.3.3"

在构建它时,我们可能需要从Dockerfile中获取该值,例如类似

ENV PATH="/path/to/version-manager/versions/$interpreter_version/bin:$PATH"

但是,LABEL的值仅可从docker inspect获得,显然在构建过程中无法获得。 this proposal for container introspection,没有被接受,但是没有其他方法。有没有解决该问题的方法?

1 个答案:

答案 0 :(得分:2)

一种方法是从ARG消费,而不是从LABEL消费,因为ARG被认为是build time variable,所以您还可以在构建时覆盖ARG,其中LABLE专为{{3} }。

此外,还有一些使用Label的准则。

  

标签键应以小写字母开头和结尾,并且应   仅包含小写字母数字字符,句点字符   (。)和连字符(-)。连续句号或连字符为   不允许。

meta data

因此,该选项为Docker 构建时间ARG

ARG interpreter_version="3.3.3"
ENV PATH="/path/to/version-manager/versions/$interpreter_version/bin:$PATH"