有时在构建Docker镜像时,必须使用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库是动态链接的。我正在沿着诸如
docker-php-ext-install
中的php库,以便我可以删除所有apt-get
的内容? apt-get update
剩余的数据? 但是这些实际上只是X-Y questions。我的实际问题是
如何在不完全失去在Dockerfile中使用
apt-get
的易用性和可维护性的情况下构建较小的Docker镜像? 最佳答案
您可以通过运行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
的同一行中运行此命令,以使其生效。关于build - 使用apt-get构建部门最小化Docker镜像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28967591/