FROM drupal:10.1.6-php8.2-apache-bookworm # Install all the stuff we need # Install packages RUN set -eux; \ \ if command -v a2enmod; then \ a2enmod rewrite; \ fi; \ apt-get update; RUN apt-get install -y \ autoconf \ automake \ coreutils \ libfreetype6-dev \ libjpeg-dev \ libpng-dev \ libpq-dev \ libtool \ libwebp-dev \ libxml2-dev \ libzip-dev \ curl \ imagemagick \ libargon2-1 \ libonig-dev \ libreadline-dev \ libsqlite3-dev \ git \ unzip \ vim \ wget; # Add php extensions RUN docker-php-ext-configure gd \ --with-freetype \ --with-jpeg=/usr \ --with-webp; RUN docker-php-ext-install -j "$(nproc)" \ dom \ filter \ gd \ opcache \ pdo_mysql \ pdo_pgsql \ zip; RUN pecl install \ apcu \ uploadprogress; RUN docker-php-ext-enable uploadprogress; # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php COPY zz-custom-opcache-settings.ini /usr/local/etc/php/conf.d/zz-custom-opcache-settings.ini # Tweek PHP COPY zz-custom-php-settings.ini /usr/local/etc/php/conf.d/zz-custom-php-settings.ini # Install composer COPY --from=composer:2 /usr/bin/composer /usr/local/bin/ # Add private files directory RUN mkdir -p /var/www/private_files && chown -R www-data /var/www/private_files # Add Drupal directory RUN mkdir -p /opt/drupal # Change workdir WORKDIR /opt/drupal # Copy entrypoint to image COPY entrypoint_drupal.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh # Copy Drupal settings from context to image COPY settings.php /settings.php # (Re)link html dir RUN ln -sf /opt/drupal/web /var/www/html ENV PATH=${PATH}:/opt/drupal/vendor/bin # Define entrypoint ENTRYPOINT entrypoint.sh # vim:set ft=dockerfile: