我正在尝试制作我可以使用的绝对最小的 Docker 镜像,因此我已经从 ubuntu 作为我的基础切换到 alpine。
For apt
,我以前用过--no-install-recommends
最大限度地减少与我所需的软件包一起安装的“依赖项”。我需要传递一个等效的标志吗apk
或者这是这个精简操作系统的默认行为?
不,我认为它没有相同的标志,因为它甚至没有执行下载推荐包的相同行为。
然而还有另一个标志--virtual
这有助于使您的图像更小:
apk add --virtual somename package1 package2
and then
apk del somename
这对于仅构建所需但不适用于稍后执行的内容很有用。
请注意,您必须执行add
、用途和del
链在一起one RUN
命令,否则添加的包将创建一个无关的镜像层,这会给最终的 Docker 镜像带来膨胀,基本上会破坏我们想要实现的目标。
e.g. if pything1
needs package1
and package2
运行,但只需要package3
and package4
在安装构建期间,这将是最佳的:
RUN apk add --no-cache package1 package2
RUN apk add --no-cache --virtual builddeps package3 package4 && \
pip install pything1 && \
apk del builddeps
包 3 和包 4 没有添加到“world”包中,而是在写入该层之前被删除。
这个问题反问了一个问题:apk add --virtual 命令的 .build-deps 是什么? https://stackoverflow.com/questions/46221063/what-is-build-deps-for-apk-add-virtual-command
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)