# Base PHP image for CLI
FROM php:7.4-alpine as php-base
RUN docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \
  docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \
  docker-php-ext-install pdo_mysql mysqli

# Test image with pcntl and posix for multithreaded work
FROM php-base AS php-test
RUN docker-php-ext-install pcntl posix

FROM php-test AS php-coverage
# Installation of Pcov is done through PECL:
RUN mkdir /work && \
  wget -c https://pecl.php.net/get/pcov -O - | tar -xz -C /work && \
  docker-php-ext-install /work/pcov-* && \
  rm -rf /work && \
  echo "pcov.enabled=0" >> $PHP_INI_DIR/php.ini

FROM php-base as php-fpm
# fcgi to be able to use a health-check
RUN apk add --update --no-cache fcgi && \
# Enable health checking on /status
  echo "pm.status_path = /status" >> /usr/local/etc/php-fpm.d/zz-docker.conf
HEALTHCHECK CMD REQUEST_METHOD=GET SCRIPT_NAME=/status SCRIPT_FILENAME=/status cgi-fcgi -bind -connect localhost:9000 2>/dev/null | tail +5 | grep -qv 'File not found.'
