59 lines
1.7 KiB
Docker
59 lines
1.7 KiB
Docker
ARG SERVER_PHP_IMAGE=unknown
|
|
ARG COMPOSER_IMAGE=composer:latest
|
|
|
|
# Image Composer
|
|
FROM ${COMPOSER_IMAGE} AS php_composer
|
|
|
|
# Image du serveur PHP à utiliser (Apache, FrankenPHP...)
|
|
FROM ${SERVER_PHP_IMAGE}
|
|
|
|
# Installation de Composer
|
|
COPY --from=php_composer /usr/bin/composer /usr/local/bin/composer
|
|
|
|
# Activation du mode rewrite d'Apache
|
|
ARG SERVER_PHP_IMAGE
|
|
RUN if echo "$SERVER_PHP_IMAGE" | grep -qi apache; then \
|
|
a2enmod rewrite headers; \
|
|
fi
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
nano \
|
|
git \
|
|
mariadb-client \
|
|
npm \
|
|
# Pour l'extension PHP intl
|
|
libicu-dev \
|
|
# Zip
|
|
unzip zip libzip-dev zlib1g-dev \
|
|
# GD
|
|
libpng-dev libjpeg-dev libwebp-dev libavif-dev libfreetype6-dev \
|
|
&& docker-php-ext-configure gd \
|
|
--with-freetype \
|
|
--with-jpeg \
|
|
--with-webp \
|
|
--with-avif \
|
|
&& docker-php-ext-install zip pdo_mysql gd sockets intl \
|
|
# Installation de PIE (PHP Installer for Extensions : https://github.com/php/pie)
|
|
&& curl -fL --output /tmp/pie.phar https://github.com/php/pie/releases/latest/download/pie.phar \
|
|
&& mv /tmp/pie.phar /usr/local/bin/pie \
|
|
&& chmod +x /usr/local/bin/pie
|
|
|
|
# Installation de Memcached
|
|
ARG WITH_MEMCACHED=false
|
|
RUN if [ "$WITH_MEMCACHED" = "true" ]; then \
|
|
apt-get install -y libmemcached-dev; \
|
|
pie install php-memcached/php-memcached; \
|
|
fi
|
|
|
|
RUN apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN usermod -u 1000 www-data && groupmod -g 1000 www-data
|
|
|
|
# Configuration pour Composer
|
|
RUN mkdir -p /var/www/.cache/composer && chown -R www-data:www-data /var/www/.cache
|
|
ENV COMPOSER_CACHE_DIR=/var/www/.cache/composer
|
|
|
|
# Configuration de NPM
|
|
RUN mkdir -p /var/www/.npm && chown -R www-data:www-data /var/www/.npm
|
|
ENV NPM_CONFIG_CACHE=/var/www/.npm |