Совсем недавно (26 ноября 2020г.) состоялся релиз 8-й версии PHP и теперь можно его использовать для запуска в Docker контейнере. Дистрибутив в официальном image остался тем же (Debian 10 Buster), что и для PHP 7-й версии. Поэтому, если у вас уже есть Dockerfile для PHP7, то для создания контейнера для PHP8 надо всего лишь поменять имя базового образа в директиве FROM.
Я использую образ сразу с поддержкой MySQL, PostgreSQL и MongoDB, чтобы не собирать его под каждую БД отдельно.
Мой Dockerfile для PHP8:
FROM php:8-fpm
RUN apt-get update \
&& apt-get install -y \
apt-utils \
man \
curl \
git \
bash \
vim \
zip unzip \
acl \
iproute2 \
dnsutils \
fonts-freefont-ttf \
fontconfig \
dbus \
openssh-client \
sendmail \
libfreetype6-dev \
libjpeg62-turbo-dev \
icu-devtools \
libicu-dev \
libmcrypt4 \
libmcrypt-dev \
libpng-dev \
zlib1g-dev \
libxml2-dev \
libzip-dev \
libonig-dev \
graphviz \
libcurl4-openssl-dev \
pkg-config \
libldap2-dev \
libpq-dev \
&& pecl install mongodb \
&& echo "extension=mongodb.so" > /usr/local/etc/php/conf.d/mongodb-ext.ini
RUN docker-php-ext-configure intl --enable-intl && \
docker-php-ext-configure gd --with-freetype --with-jpeg && \
docker-php-ext-install -j$(nproc) gd && \
docker-php-ext-install pdo \
pgsql pdo_pgsql \
mysqli pdo_mysql \
intl iconv mbstring \
zip pcntl \
exif opcache \
&& docker-php-source delete
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer