Skip to content

Commit 88a38e6

Browse files
committed
Fix php-fpm build
1 parent 390198d commit 88a38e6

1 file changed

Lines changed: 76 additions & 44 deletions

File tree

images/docker-php-fpm/Dockerfile

Lines changed: 76 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,49 @@
1-
FROM php:8.3-fpm
1+
# Stage 1: Builder
2+
FROM php:8.3-fpm-bookworm AS builder
23

34
LABEL maintainer="Steve Comrie <steve@simplicate.ca>"
45

6+
# Install build dependencies
57
RUN apt-get update && apt-get upgrade -y \
6-
&& apt-get install -y \
7-
g++ \
8-
libbz2-dev \
9-
libc-client-dev \
10-
libcurl4-gnutls-dev \
11-
libedit-dev \
12-
libfreetype6-dev \
13-
libicu-dev \
14-
libjpeg62-turbo-dev \
15-
libkrb5-dev \
16-
libldap2-dev \
17-
libldb-dev \
18-
libmagickwand-dev \
19-
libmcrypt-dev \
20-
libpng-dev \
21-
libpq-dev \
22-
libsqlite3-dev \
23-
libssl-dev \
24-
libreadline-dev \
25-
libxslt1-dev \
26-
libzip-dev \
27-
wget \
28-
unzip \
29-
zlib1g-dev \
30-
default-mysql-client \
8+
&& apt-get install -y --no-install-recommends \
9+
g++ \
10+
make \
11+
pkg-config \
12+
libbz2-dev \
13+
libc-client2007e-dev \
14+
libcurl4-gnutls-dev \
15+
libedit-dev \
16+
libfreetype6-dev \
17+
libicu-dev \
18+
libjpeg62-turbo-dev \
19+
libkrb5-dev \
20+
libldap2-dev \
21+
libldb-dev \
22+
libmagickwand-dev \
23+
libmcrypt-dev \
24+
libpng-dev \
25+
libpq-dev \
26+
libsqlite3-dev \
27+
libssl-dev \
28+
libreadline-dev \
29+
libxslt1-dev \
30+
libzip-dev \
31+
zlib1g-dev \
32+
wget \
33+
unzip \
34+
git \
35+
default-mysql-client \
3136
&& docker-php-ext-install \
32-
bcmath \
33-
bz2 \
34-
calendar \
35-
exif \
36-
gettext \
37-
mysqli \
38-
opcache \
39-
pdo_mysql \
40-
soap \
41-
xsl \
37+
bcmath \
38+
bz2 \
39+
calendar \
40+
exif \
41+
gettext \
42+
mysqli \
43+
opcache \
44+
pdo_mysql \
45+
soap \
46+
xsl \
4247
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
4348
&& docker-php-ext-install gd \
4449
&& PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
@@ -50,12 +55,39 @@ RUN apt-get update && apt-get upgrade -y \
5055
&& docker-php-ext-configure zip \
5156
&& docker-php-ext-install zip \
5257
&& CFLAGS="$CFLAGS -D_GNU_SOURCE" docker-php-ext-install sockets \
53-
&& pecl install xmlrpc-1.0.0RC3 && docker-php-ext-enable xmlrpc \
54-
&& pecl install xdebug && docker-php-ext-enable xdebug \
55-
&& pecl install redis && docker-php-ext-enable redis \
58+
&& pecl install xdebug redis xmlrpc-1.0.0RC3 \
59+
&& docker-php-ext-enable xdebug redis xmlrpc \
5660
&& yes '' | pecl install imagick && docker-php-ext-enable imagick \
57-
&& docker-php-source delete \
58-
&& apt-get remove -y g++ wget \
59-
&& apt-get autoremove --purge -y && apt-get autoclean -y && apt-get clean -y \
60-
&& rm -rf /var/lib/apt/lists/* \
61-
&& rm -rf /tmp/* /var/tmp/*
61+
&& docker-php-source delete
62+
63+
# Stage 2: Runtime
64+
FROM php:8.3-fpm-bookworm
65+
66+
LABEL maintainer="Steve Comrie <steve@simplicate.ca>"
67+
68+
# Copy compiled extensions from builder
69+
COPY --from=builder /usr/local/lib/php/extensions/ /usr/local/lib/php/extensions/
70+
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
71+
72+
# Install only runtime dependencies
73+
RUN apt-get update && apt-get install -y --no-install-recommends \
74+
libfreetype6 \
75+
libjpeg62-turbo \
76+
libpng16-16 \
77+
libicu72 \
78+
libldap-2.5-0 \
79+
libmagickwand-6.q16-6 \
80+
libpq5 \
81+
libxslt1.1 \
82+
libzip4 \
83+
zlib1g \
84+
ghostscript \
85+
imagemagick \
86+
nano \
87+
curl \
88+
wget \
89+
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
90+
91+
WORKDIR /var/www/html
92+
93+
CMD ["php-fpm"]

0 commit comments

Comments
 (0)