当我的Docker容器的基础镜像改变时,我想自动重建它们。其思想是将当前标记容器的基本映像ID与Docker Hub中的基本映像ID进行比较,如果不同,则运行新的构建。
获取最新的基础镜像ID似乎非常简单:
$ docker pull debian:latest >/dev/null 2&>1; docker images debian:latest -q
sha256:a20fd0d59cf13f82535ccdda818d70b97ab043856e37a17029e32fc2252b8c56docker inspect有一个名为"Parent“的条目,它似乎包含了FROM指令中使用的镜像的ID:
$ docker inspect -f '{{.Parent}}' dockertest-1
sha256:a20fd0d59cf13f82535ccdda818d70b97ab043856e37a17029e32fc2252b8c56因为我真的找不到任何关于这方面的文档,所以我想知道我是否应该依赖这些数据来构建我的构建管道。
发布于 2017-08-22 23:27:07
父引用没有指向does文件的FROM行中的基础图像,它指向图像中倒数第二个层。如果您的构建只包含一个层,那么这可以是FROM行,但是向Dockerfile文件添加第二行将破坏您的脚本。
如果您知道基本图像的标签(这种元信息不存储在图像中,因此您需要在外部跟踪它,可能需要向图像添加标签),那么您可以在当前图像的docker history中搜索基本图像的当前sha256。我将使用以下参数来生成ID列表:
$ docker history --format '{{ .ID }}' --no-trunc $image_idhttps://stackoverflow.com/questions/45821389
复制相似问题