Files
wordpress-stack/php/Dockerfile
2026-04-05 16:23:17 +00:00

123 lines
2.4 KiB
Docker

ARG PHP_VERSION=latest
FROM php:${PHP_VERSION}-fpm
# Runtime deps
RUN apt-get update && apt-get install -y --no-install-recommends \
binutils \
default-mysql-client \
msmtp \
redis-tools \
wget \
zip \
libssl-dev \
libxml2-dev \
libicu-dev \
libgmp-dev \
libzip-dev \
zlib1g-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libwebp-dev \
libmagickwand-dev \
libvips-dev \
libgomp1 \
libvips42 \
libmagickwand-7.q16-10 \
libmagickcore-7.q16-10
# Build deps
RUN apt-get install -y --no-install-recommends \
git \
$PHPIZE_DEPS
# Core PHP extensions
RUN set -eux \
&& docker-php-ext-install \
bcmath \
opcache \
zip \
mysqli \
pdo \
pdo_mysql \
exif \
soap \
shmop \
gmp \
intl \
gmp \
curl \
&& docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
&& docker-php-ext-install gd \
&& docker-php-ext-configure intl \
&& docker-php-ext-install intl
# Install: imagick + vips
RUN pecl install imagick \
&& docker-php-ext-enable imagick \
&& pecl install vips \
&& docker-php-ext-enable vips \
&& rm -rf /tmp/pear
# Install igbinary first, enable it, then build phpredis WITH igbinary
RUN set -eux; \
pecl install igbinary; \
docker-php-ext-enable igbinary; \
mkdir -p /tmp/redis-build; \
cd /tmp/redis-build; \
pecl download redis; \
tar -xf redis-*.tgz; \
cd redis-*; \
phpize; \
./configure --enable-redis-igbinary; \
make -j"$(nproc)"; \
make install; \
docker-php-ext-enable redis; \
cd /; \
rm -rf /tmp/redis-build
# Purge unneed packages
RUN apt-get purge -y --auto-remove \
git \
$PHPIZE_DEPS
# Copy PHP ini
COPY mail.ini \
opcache.ini \
upload.ini \
memory.ini \
zz-redis-serializer.ini \
/usr/local/etc/php/conf.d/
# Copy MSMTP conf
COPY msmtprc.template /etc/
# Copy PHP-FPM prepend
COPY prepend-wp-redis.php \
/usr/local/etc/php/
# Copy PHP-FPM config
#COPY php-fpm/www.conf \
# php-fpm/www.conf.default \
# /usr/local/etc/php-fpm.d/www.conf.default
COPY php-fpm/www.conf \
php-fpm/www.conf.default \
/usr/local/etc/php-fpm.d/
# COPY MYSQL config
COPY mysql.ini /usr/local/etc/php/conf.d/mysql.ini
# INSTALL SSHSERVER
#RUN apt-get update \
# && apt install openssh-server
# SET workdir
WORKDIR /var/www/html
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
CMD ["php-fpm"]