我正试图制作一个绝对最小的Docker镜像,所以我已经从ubuntu切换到alpine。对于apt,我曾经使用--no-install-recommends来最小化与我想要的软件包一起安装的“依赖关系”。是否有一个等效的标志需要与apk一起传递沿着,或者这是这个精简操作系统的默认行为?
apt
--no-install-recommends
apk
tcomlyy61#
不,它没有相同的标志,我认为,因为它甚至没有做同样的行为下载推荐的软件包。但是,还有另一个标志--virtual可以帮助您保持图像较小:
--virtual
apk add --virtual somename package1 package2
字符串然后
apk del somename
型这对于只需要构建而不需要执行的东西很有用。注意,你必须在 oneRUN命令中执行add、use和del,否则添加的包将创建一个无关的镜像层,这将给最终的Docker镜像增加膨胀,基本上破坏了我们试图实现的目标。例如,如果pything1需要package1和package2来运行,但在安装构建过程中只需要package3和package4,这将是最佳的:
RUN
add
del
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?
1条答案
按热度按时间tcomlyy61#
不,它没有相同的标志,我认为,因为它甚至没有做同样的行为下载推荐的软件包。
但是,还有另一个标志
--virtual
可以帮助您保持图像较小:字符串
然后
型
这对于只需要构建而不需要执行的东西很有用。
注意,你必须在 one
RUN
命令中执行add
、use和del
,否则添加的包将创建一个无关的镜像层,这将给最终的Docker镜像增加膨胀,基本上破坏了我们试图实现的目标。例如,如果
pything1
需要package1
和package2
来运行,但在安装构建过程中只需要package3
和package4
,这将是最佳的:型
包3和4不被添加到“世界”包,而是在写入层之前被移除。
这个问题反过来问:What is .build-deps for apk add --virtual command?