FROM php:7.3-apache

ENV NEXTCLOUD_VERSION 20.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 \
        libgmp-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 \
        gmp \
        iconv \
        json \
        mbstring \
        xmlwriter \
        zip \
        pdo_mysql \
        curl \
        bz2 \
        intl \
        bcmath \
        opcache && \
    CFLAGS="-I/usr/src/php" docker-php-ext-install xmlreader

RUN \
    pecl install -o -f apcu imagick-beta && \
    rm -rf /tmp/pear && \
    docker-php-ext-enable apcu 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"]