@@ -25,47 +25,41 @@ RUN apk --no-progress --update add --no-cache \
2525# Build all extensions in a separate image ———————————————————————————————————————
2626FROM base-image AS extension-builder
2727
28- # Intl support
29- RUN apk --update --virtual build-deps-intl add --no-cache icu-dev \
30- && docker-php-ext-install intl \
31- && apk del build-deps-intl \
32- && rm -rf /tmp/*
33-
34- # PDO: MySQL
35- RUN docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \
36- && docker-php-ext-install pdo_mysql
37-
38- # PDO: PostgreSQL
39- RUN apk --update --virtual build-deps-pg add --no-cache libpq -dev \
40- && docker-php-ext-configure pgsql --with-pgsql=/usr/local/pgsql \
41- && docker-php-ext-install pgsql pdo_pgsql \
42- && apk del build-deps-pg \
43- && rm -rf /tmp/*
44-
45- # GD (map image in mail)
46- RUN apk --update --virtual build-deps-gd add --no-cache freetype-dev libjpeg-turbo-dev libpng-dev \
28+ # Install ALL build dependencies at once
29+ RUN apk --update --virtual build-deps add --no-cache \
30+ # Intl support
31+ icu-dev \
32+ # PDO: PostgreSQL
33+ libpq-dev \
34+ # GD (map image in mail)
35+ freetype-dev libjpeg-turbo-dev libpng-dev \
36+ # LDAP auth support
37+ openldap-dev \
38+ # Zip lib for PHP-IMAP
39+ libzip -dev \
40+ $PHPIZE_DEPS
41+
42+ # Build ALL extensions in one RUN command to reduce layers
43+ # and allow parallel compilation for extensions
44+ RUN docker-php-ext-configure intl \
45+ && docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \
46+ && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \
4747 && docker-php-ext-configure gd --with-freetype \
48- && docker-php-ext-install gd \
49- && docker-php-ext-enable gd \
50- && apk del build-deps-gd \
51- && rm -rf /tmp/*
52-
53- # LDAP auth support
54- RUN apk --update --virtual build-deps-ldap add --no-cache openldap-dev \
5548 && docker-php-ext-configure ldap \
56- && docker-php-ext-install ldap \
57- && apk del build-deps-ldap \
58- && rm -rf /tmp/*
59-
60- # Zip lib for PHP-IMAP
61- RUN apk --update --virtual build-deps-zip add --no-cache libzip-dev \
6249 && docker-php-ext-configure zip \
63- && docker-php-ext-install zip \
64- && apk del build-deps-zip \
65- && rm -rf /tmp/*
50+ && docker-php-ext-install -j$(nproc) \
51+ intl \
52+ pdo_mysql \
53+ pgsql \
54+ pdo_pgsql \
55+ gd \
56+ ldap \
57+ zip \
58+ opcache \
59+ && docker-php-ext-enable gd opcache \
60+ && apk del build-deps \
61+ && rm -rf /tmp/* /var/cache/apk/*
6662
67- # OPCache
68- RUN docker-php-ext-install opcache
6963COPY ./docker/configurations/opcache.ini /usr/local/etc/php/conf.d/opcache.ini
7064
7165# Final image ————————————————————————————————————————————————————————————————————
0 commit comments