FROM php:7.3-apache ENV NEXTCLOUD_VERSION 17.0.0 RUN \ apt-get update && \ apt-get install -y --no-install-recommends \ supervisor \ cron \ sudo \ ffmpeg \ libldap2-dev \ libxml2-dev \ libpng-dev \ libcurl4-openssl-dev \ libmagickwand-dev \ libbz2-dev \ icu-devtools \ libicu-dev \ libzip-dev \ libmcrypt-dev \ libfreetype6-dev \ libssl-dev \ libjpeg-dev \ curl \ cron && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* #Dirty hack to circumvent bug in phpize which is open since May 2016 #Basically the "missing" config.m4 is named "config0.m4" #This tries to install zlib and if it doesn't work then rename the file and try again" RUN \ docker-php-ext-install zlib || \ ( mv /usr/src/php/ext/zlib/config0.m4 /usr/src/php/ext/zlib/config.m4 && \ docker-php-ext-install zlib ) # See above RUN \ docker-php-ext-install openssl || \ ( mv /usr/src/php/ext/openssl/config0.m4 /usr/src/php/ext/openssl/config.m4 && \ docker-php-ext-install openssl ) RUN \ docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu && \ docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ docker-php-ext-install \ ldap \ ctype \ dom \ gd \ iconv \ json \ mbstring \ xmlwriter \ zip \ pdo_mysql \ curl \ bz2 \ intl \ opcache \ mcrypt && \ CFLAGS="-I/usr/src/php" docker-php-ext-install xmlreader RUN \ pecl install -o -f redis imagick-beta && \ rm -rf /tmp/pear && \ docker-php-ext-enable redis imagick # Activate user-defined .htaccess RUN \ a2enmod rewrite env # Add extra configuration to php.ini ADD nextcloud_php.ini /usr/local/etc/php/conf.d/nextcloud_php.ini RUN \ curl -o /tmp/nextcloud.tar.bz2 https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_VERSION}.tar.bz2 && \ tar xvjf /tmp/nextcloud.tar.bz2 -C /tmp && \ rm -rf /var/www/html && \ mv /tmp/nextcloud /var/www/html && \ chown -R www-data:www-data /var/www/html && \ rm /tmp/nextcloud.tar.bz2 # Add supervisor and cron config ADD crontab /opt/crontab ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf ADD update-htaccess.sh /update-htaccess.sh RUN crontab /opt/crontab && chmod +x /update-htaccess.sh VOLUME ["/var/www/html/config","/var/www/html/data"] ENTRYPOINT ["supervisord"]