使用apt-get build depm最小化Docker镜像
有时候在构buildDocker镜像时,有必要使用apt-get
。 例如,用于运行Magento的图像可能会像这样启动
FROM php:5.4-apache RUN apt-get -qqy update \ && apt-get -qqy install git \ libmcrypt-dev \ libpng12-dev \ libxml2-dev \ libxslt-dev \ && docker-php-ext-install bcmath \ gd \ mcrypt \ mysql \ soap \ xsl \ zip
但是现在我拥有那些apt-get
命令带来的所有垃圾。 更糟的是,我甚至不知道我能够删除什么,因为大概是PHP库是dynamic链接的。
我正在考虑沿线等
- 有没有办法在
docker-php-ext-install
静态链接php库文件,这样我就可以将所有的apt-get
删除了? - 如何删除
apt-get update
留下的数据?
但这些只是XY的问题 。 我真正的问题只是
我如何构build更小的Docker镜像,而不必将Dockerfile中的apt-get
的易用性和可维护性放在一起?
你可以通过运行rm -rf /var/lib/apt/lists/*
来删除一些东西
RUN apt-get update \ && apt-get install -y MY_PACKAGE \ && rm -rf /var/lib/apt/lists/*
请记住,您需要在apt-get update
的同一行中运行它才能生效。