我想在基础映像更改时自动重建我的Docker容器。我们的想法是将当前标记容器的基本映像ID与Docker Hub中基本映像的ID进行比较,如果不同则运行新构建。
获取最新的基本图像ID似乎非常简单:
docker inspect
FROM
有一个名为" Parent"的条目这似乎包含$ docker inspect -f '{{.Parent}}' dockertest-1
sha256:a20fd0d59cf13f82535ccdda818d70b97ab043856e37a17029e32fc2252b8c56
指令中使用的图像的ID:
<div class="col-md-10">
<label class="radio-inline">
@Html.RadioButtonFor(m => m.rad1, "" ,htmlAttributes: new {
data_bind = "checked: ischecked", id = "rad1" }) Radio 1
</label>
<label class="radio-inline">
@Html.RadioButtonFor(m => m.rad2, "" ,htmlAttributes: new { data_bind = "checked: ischecked", id = "rad2" }) Radio 2
</label>
</div>
<div class="col-md-10">
<label class="radio-inline">
@Html.RadioButtonFor(m => m.rad3, "", htmlAttributes: new { data_bind = "checked: ischecked", id = "rad3" }) Radio 3
</label>
<label class="radio-inline">
@Html.RadioButtonFor(m => m.rad4, "", htmlAttributes: new { data_bind = "checked: ischecked", id = "rad4" }) Radio 4
</label>
</div>
由于我无法找到任何关于此的文档,我想知道是否应该依赖这些数据来构建我的构建管道。
答案 0 :(得分:5)
父引用不指向Dockerfile的FROM
行中的基本图像,它指向图像中最后一层的倒数第二层。如果您的构建只包含单个图层,那么这可以是FROM
行,但是在Dockerfile中添加第二行会破坏您的脚本。
如果您知道基本图像的标记(此类元信息未存储在图像中,因此您需要在外部跟踪它,可能会在图像中添加标签),然后您可以搜索基本图像当前sha256的当前图像的docker history
。我将使用以下参数生成ID列表:
$ docker history --format '{{ .ID }}' --no-trunc $image_id