FROM php:7.4-fpm LABEL maintainer="Andrei Condurachi (@acondura)" # Ubuntu repo updates RUN apt-get update # Install dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ unzip \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ libyaml-dev \ libzip4 \ libzip-dev \ zlib1g-dev \ libicu-dev \ libmemcached11 \ libmemcachedutil2 \ build-essential \ libmemcached-dev \ libwebp-dev \ g++ \ git \ cron \ vim \ && docker-php-ext-install opcache \ && docker-php-ext-configure intl \ && docker-php-ext-install intl \ && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \ && docker-php-ext-install -j$(nproc) gd openssl exif fileinfo \ && docker-php-ext-install zip \ && rm -rf /var/lib/apt/lists/* # Enable Apache Rewrite + Expires Module RUN a2enmod rewrite expires && \ sed -i 's/ServerTokens OS/ServerTokens ProductOnly/g' \ /etc/apache2/conf-available/security.conf # Install composer RUN curl --silent --show-error https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN pecl install apcu \ && pecl install yaml-2.1.0 \ && docker-php-ext-enable apcu yaml # Set user to www-data RUN chown www-data:www-data /var/www USER www-data # Define Grav specific version of Grav or use latest stable ENV GRAV_VERSION latest # Install grav WORKDIR /var/www RUN curl -o grav-admin.zip -SL https://getgrav.org/download/core/grav-admin/${GRAV_VERSION} && \ unzip grav-admin.zip && \ mv -T /var/www/grav-admin /var/www/html && \ rm grav-admin.zip # Create cron job for Grav maintenance scripts RUN (crontab -l; echo "* * * * * cd /var/www/html;/usr/local/bin/php bin/grav scheduler 1>> /dev/null 2>&1") | crontab - # Accept incoming HTTP requests EXPOSE 80/tcp # Return to root user USER root # provide container inside image for data persistence VOLUME ["/var/www/html"] CMD ["sh", "-c", "apache2-foreground"]