【发布时间】:2017-10-06 00:37:49
【问题描述】:
我正在尝试制作绝对最小的 Docker 镜像,因此我已经从 ubuntu 作为我的基础切换到了 alpine。
对于apt,我曾经使用--no-install-recommends 来最小化随所需软件包安装的“依赖项”。是否有我需要与apk 一起传递的等效标志,或者这是这个精简操作系统的默认行为?
【问题讨论】:
标签: docker package alpine alpine-package-keeper
我正在尝试制作绝对最小的 Docker 镜像,因此我已经从 ubuntu 作为我的基础切换到了 alpine。
对于apt,我曾经使用--no-install-recommends 来最小化随所需软件包安装的“依赖项”。是否有我需要与apk 一起传递的等效标志,或者这是这个精简操作系统的默认行为?
【问题讨论】:
标签: docker package alpine alpine-package-keeper
不,我认为它没有相同的标志,因为它甚至没有下载推荐包的相同行为。
但是,还有另一个标志 --virtual 可以帮助您缩小图像:
apk add --virtual somename package1 package2
然后
apk del somename
这对于只需要构建而不是稍后执行的东西很有用。
注意你必须在一个 RUN 命令中执行它,否则它不能从之前的 Docker 镜像层中删除。
例如如果pything1 需要package1 和package2 运行,但在安装构建期间只需要package3 和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 没有添加到“世界”包中,而是在写入层之前被删除。
这个问题反过来问问题:What is .build-deps for apk add --virtual command?
【讨论】: