在Docker容器中将标签作为环境变量访问

Eri*_*rik 5 git docker

我希望能够从该容器中访问用于构建docker容器的标签/修订版。有没有一种简单的方法可以将构建期间的标签/修订作为环境变量显示出来?

例如,我希望在容器内运行的API知道其当前版本。如果没有docker,我通常会使用git将修订版本写入API可以访问的文件,但这似乎不是“ Docker方式”。

Eri*_*rik 5

现在可以使用 docker build 参数来实现。

https://docs.docker.com/engine/reference/commandline/build/

docker build --build-arg TAG=v0.0.1 .

  • 有趣,但不能保证 TAG 与图像标签相同。事实上,在构建后可以使用“docker tag”轻松更改标签。实际上需要的是一个运行时环境变量,docker 将其设置为“docker run”命令的一部分,此时用于容器的标签是已知的。 (2认同)

use*_*097 1

它不是 API,但您始终可以使用-e运行命令的 来传递标签。一个简短的示例$ docker run -it -e mytag=abc123 ubuntu:latest env | grep mytag mytag=abc123 ,因此容器内的 mytag 将包含容器的标签。