apk-无缓存图像层更改

问题描述 投票:1回答:1

[使用Dockerfile构建docker镜像,将同一镜像推送到Artifactory。我注意到当使用apk --no-cache时,sha256发生了变化,尽管Dockerfile没有。

我将3张不同的图像推送到Artifactory,当检查时我注意到3层不同-这是否意味着它占据了3层,而不是参考已推送的第一层?

我构建了相同的Dockerfile 3次,并将映像推送到Artifactory。检查图像层时,我发现3幅图像具有不同的层(不同的sha256)。

FROM alpine:3.9

ADD resources/repositories /etc/apk/repositories
RUN apk --no-cache add curl && apk --no-cache add --repository  http://myartifactory.com:8081/artifactory/alpine-nl-remote/alpine/edge/testing gosu

正在运行(版本1更改为2和3)

docker build -t myartifactory.com/apline:3.9-1
docker push

检查人工工厂,我现在每个图像都有3层。在所有3张图片中,一旦图层不同并且两层相同,就可以使用]

同一图像应使用相同的sha256构建,并且Artifactory应该具有该图像的一个副本和指向该图像的2个其他引用

apk artifactory alpine
1个回答
0
投票

apk --no-cache安装相同的软件包可能会得到不同的sha256,取决于是否有任何本地缓存。图像更改的原因是因为文件元数据(例如mtime或atime)已更改。

您应该构建一个安装了所有依赖项的基础层,然后从该基础层进行构建。

© www.soinside.com 2019 - 2024. All rights reserved.