【发布时间】:2016-12-26 14:30:36
【问题描述】:
我已经基于 official PHP FPM image php:7.0.14-fpm-alpine 构建了一个自定义 Docker 映像
我想保持图片较小,所以我选择了官方的alpine PHP-FPM 版本,因为它只有 27 MB。
我只通过Dockerfile 安装了几个额外的软件包,图像的大小增加到了 277.5 MB。这是我的 Dockerfile:
FROM php:7.0.14-fpm-alpine
COPY ./config/www-pool.conf /usr/local/etc/php-fpm.d/www.conf
COPY ./scripts/download-composer.sh /root/download-composer.sh
WORKDIR /root
RUN chmod +x download-composer.sh \
&& ./download-composer.sh \
&& mv composer.phar /usr/local/bin/composer
RUN ["mkdir", "/var/log/php-fpm"]
RUN apk --update add \
autoconf g++ make \
openssl-dev \
libxml2-dev
RUN pecl install \
xdebug \
mongodb
RUN docker-php-ext-enable \
xdebug.so \
mongodb.so
RUN docker-php-ext-install \
pdo_mysql \
soap
RUN addgroup sudo
RUN adduser -S luqo33 -G sudo
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
与基本映像相比,277.5 MB 的大小增加了十倍。除了 Composer,我只需要几个 PHP 扩展:
- mongodb
- xdebug
- pdo
- 肥皂
我不确定是什么对我的图片尺寸增加如此之大的贡献最大。我怀疑这可能是由于需要安装 dev 依赖项才能成功运行 pecl(openssl-dev、libxml2-dev),并且可能已经安装了它们自己的依赖关系树。
您能否建议我如何减小自定义 PHP-FPM 图像的大小并仍保留必要的扩展?
【问题讨论】:
-
立即移除未使用的库。运行图像真的需要 g++ 吗?
标签: php docker docker-compose dockerfile