# from https://www.drupal.org/docs/system-requirements/php-requirements
FROM php:8.2.35-apache-bookworm

# install the PHP extensions we need
RUN set -eux; \
	\
	if command -v a2enmod; then \
		a2enmod rewrite; \
	fi; \
	\
	savedAptMark="$(apt-mark showmanual)"; \
	\
	apt-get update; \
	apt-get install -y --no-install-recommends \
		libfreetype6-dev \
        	libjpeg-dev \
        	libpng-dev \
        	libpq-dev \
        	libzip-dev \
        	libzip4 \
        	libc-client2007e \
        	libc-client2007e-dev \
        	libkrb5-dev \
        	libmagickwand-dev \
	; \
	\
	pecl install imagick \
	; \
	\
	docker-php-ext-enable imagick \
	; \
	\
	docker-php-ext-configure gd \
		--with-freetype \
		--with-jpeg=/usr \
	; \
	\
	docker-php-ext-configure imap \
		--with-kerberos \
		--with-imap-ssl \
	; \
	\
	docker-php-ext-install -j "$(nproc)" \
		gd \
		opcache \
		pdo_mysql \
		pdo_pgsql \
		zip \
		imap \
	; \
	\
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
	apt-mark auto '.*' > /dev/null; \
	apt-mark manual $savedAptMark; \
	ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
		| awk '/=>/ { print $3 }' \
		| sort -u \
		| xargs -r dpkg-query -S \
		| cut -d: -f1 \
		| sort -u \
		| xargs -rt apt-mark manual; \
	\
	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
	rm -rf /var/lib/apt/lists/*

COPY --from=composer:2 /usr/bin/composer /usr/local/bin/

RUN a2enmod ssl

RUN apt-get update && apt-get install msmtp imagemagick -y && \
rm -rf /var/lib/apt/lists/*
