[使用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 --no-cache
安装相同的软件包可能会得到不同的sha256,取决于是否有任何本地缓存。图像更改的原因是因为文件元数据(例如mtime或atime)已更改。
您应该构建一个安装了所有依赖项的基础层,然后从该基础层进行构建。