Dockerfile 中的 ARG 和 LABEL 是什么
What are ARG and LABEL in a Dockerfile
我有一个 Dockerfile 开始...
FROM some.artifactory.example.com/openjdk:8-jre-alpine
ARG version
LABEL version=$version
...
我想知道 'version' 和“$version”是什么,以及它们作为 ARG 和 LABEL 的值分别有什么作用。就像 ARG version
以某种方式“在范围内”提取一些值,然后 LABEL version=$version
使用它……到什么目的?在有问题的 Dockerfile 中,我没有看到任何提及版本的地方。
A LABEL
是图像上的一段元数据。您可以添加任何 key=val
作为标签。
ARG
是您可以在构建时传递给构建器的东西。然后您可以在构建期间使用 Dockerfile 中的值(但它在运行时不再可用;因此除非您以某种方式将值保存到图像本身,否则容器将不知道该值是什么)。
docker build --build-arg version=1.2.3
根据这个 Dockerfile,作者似乎想在构建时传递一个版本号,并将其保存在元数据中。他们使用 ARG
(和 --build-arg
)传递值,并使用 LABEL
将其作为元数据存储在结果图像中。
换句话说,这似乎是图像的某种组织/簿记,但它对图像的内容或运行时特性没有影响。
我有一个 Dockerfile 开始...
FROM some.artifactory.example.com/openjdk:8-jre-alpine
ARG version
LABEL version=$version
...
我想知道 'version' 和“$version”是什么,以及它们作为 ARG 和 LABEL 的值分别有什么作用。就像 ARG version
以某种方式“在范围内”提取一些值,然后 LABEL version=$version
使用它……到什么目的?在有问题的 Dockerfile 中,我没有看到任何提及版本的地方。
A LABEL
是图像上的一段元数据。您可以添加任何 key=val
作为标签。
ARG
是您可以在构建时传递给构建器的东西。然后您可以在构建期间使用 Dockerfile 中的值(但它在运行时不再可用;因此除非您以某种方式将值保存到图像本身,否则容器将不知道该值是什么)。
docker build --build-arg version=1.2.3
根据这个 Dockerfile,作者似乎想在构建时传递一个版本号,并将其保存在元数据中。他们使用 ARG
(和 --build-arg
)传递值,并使用 LABEL
将其作为元数据存储在结果图像中。
换句话说,这似乎是图像的某种组织/簿记,但它对图像的内容或运行时特性没有影响。