performance-drupal/drupal_context/Dockerfile
2023-05-11 13:55:07 +02:00

125 lines
2.8 KiB
Docker
Executable file

FROM drupal:10.0.9-php8.2-fpm-alpine
MAINTAINER Robert Nasarek "r.nasarek@gnm.de"
# Install all the stuff we need
# Install packages
RUN apk update && \
apk upgrade -U
RUN apk add \
autoconf \
automake \
build-base \
coreutils \
freetype-dev \
git \
imagemagick \
jpeg-dev \
libpng-dev \
libpq-dev \
libtool \
libwebp-dev \
libwebp-tools \
libxml2-dev \
libzip-dev \
linux-headers \
postgresql-dev \
tiff-dev \
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 \
gd \
opcache \
pdo_mysql \
pdo_pgsql \
zip;
# Runtime Dependencies
RUN runDeps="$( \
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \
| tr ',' '\n' \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
apk add --no-network --virtual .drupal-phpexts-rundeps $runDeps;
# Upload progress
RUN set -eux; \
git clone https://github.com/php/pecl-php-uploadprogress/ /usr/src/php/ext/uploadprogress/; \
docker-php-ext-configure uploadprogress; \
docker-php-ext-install uploadprogress; \
rm -rf /usr/src/php/ext/uploadprogress;
# Install apcu
RUN set -eux; \
pecl install apcu; \
pecl install xdebug \
docker-php-ext-enable xdebug;
# Add php configs
RUN { \
echo 'extension=apcu.so'; \
echo "apc.enable_cli=1"; \
echo "apc.enable=1"; \
} >> /usr/local/etc/php/php.ini;
# Install iipsrv
RUN set -eux; \
git clone https://github.com/ruven/iipsrv.git; \
cd iipsrv; \
./autogen.sh; \
./configure; \
make; \
mkdir /fcgi-bin; \
cp src/iipsrv.fcgi /fcgi-bin/iipsrv.fcgi
# Add IIPServer config
COPY iipsrv.conf /etc/apache2/mods-available/iipsrv.conf
# set recommended PHP.ini settings
# see https://secure.php.net/manual/en/opcache.installation.php
COPY 99-custom-opcache-settings.ini /usr/local/etc/php/conf.d/99-custom-opcache-settings.ini;
# Tweek PHP
COPY 99-custom-php-settings.ini /usr/local/etc/php/conf.d/99-custom-php-settings.ini;
# Install composer
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/
# Add private files directory
RUN mkdir /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.sh /usr/local/bin
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: