ldc-web-images-docker/PHP7.4/DEV/Dockerfile

63 lines
2.4 KiB
Docker

FROM php:7.4-apache
ENV DEBIAN_FRONTEND=noninteractive \
LC_ALL=fr_FR.UTF-8 \
LANG=fr_FR.UTF-8 \
LANGUAGE=fr_FR.UTF-8:fr
# --- System packages, Node.js, Locales ---
RUN apt-get update -qq \
&& apt-get install -qy \
nano vim git zsh \
libfreetype6-dev libjpeg62-turbo-dev libpng-dev libwebp-dev libxpm-dev \
zlib1g-dev libicu-dev g++ \
libxslt-dev libzip-dev unzip zip \
libmagick++-dev libmagickwand-dev \
libmemcached-dev \
ldap-utils libldap2-dev \
locales \
mariadb-client \
&& echo "fr_FR.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen fr_FR.UTF-8 \
&& dpkg-reconfigure locales \
&& /usr/sbin/update-locale LANG=fr_FR.UTF-8 \
# Node.js
&& curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
&& apt-get install -y nodejs \
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# --- PHP extensions ---
RUN docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype \
&& docker-php-ext-configure intl \
&& docker-php-ext-configure zip --with-zip \
&& docker-php-ext-configure ldap \
&& docker-php-ext-install exif gd gettext intl mysqli pdo_mysql xsl opcache zip bcmath ldap
# --- PECL extensions ---
RUN pecl install imagick-3.6.0 && docker-php-ext-enable imagick \
&& pecl install memcached-3.1.5 && docker-php-ext-enable memcached \
&& pecl install xdebug-3.1.5 \
&& pecl install pcov && docker-php-ext-enable pcov
# --- Composer ---
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# --- Zsh/Oh-My-Zsh (as root for dev; useradd if non-root is required) ---
RUN sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" "" --unattended \
&& git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions \
&& sed -i 's/plugins=(git)/plugins=(git laravel zsh-autosuggestions)/g' ~/.zshrc
ENV SHELL=/bin/zsh
RUN chsh -s /bin/zsh
# --- Apache/PHP config ---
COPY conf/common-apache.conf /etc/apache2/conf-available/z-app.conf
COPY conf/common-ports.conf /etc/apache2/ports.conf
COPY conf/common-security.conf /etc/apache2/conf-enabled/security.conf
COPY conf/php.ini /usr/local/etc/php/conf.d/app.ini
COPY conf/vhost.conf /etc/apache2/sites-available/000-default.conf
RUN a2enmod rewrite remoteip headers http2 \
&& a2enconf z-app
WORKDIR /app/srcs