# https://owncloud.com/minimum-product-requirements/ ("5.6 recommended")
# https://doc.owncloud.org/server/10.0/admin_manual/installation/system_requirements.html ("PHP (5.6+ or 7.0+)")
# https://doc.owncloud.org/server/9.0/admin_manual/installation/system_requirements.html ("PHP 7.0")
#FROM php:7.0-apache
FROM blepiolot/rpi-apache-php:latest

RUN apt-get update && apt-get install -y --no-install-recommends \
		bzip2 \
		libcurl4-openssl-dev \
		libfreetype6-dev \
		libicu-dev \
		libjpeg-dev \
		libldap2-dev \
		libmcrypt-dev \
		libmemcached-dev \
		libpng12-dev \
		libpq-dev \
		libxml2-dev \
		vim \
	&& rm -rf /var/lib/apt/lists/*

# Set Timezone
RUN echo "TZ='Europe/Paris'; export TZ" > /etc/profile

# https://doc.owncloud.org/server/8.1/admin_manual/installation/source_installation.html#prerequisites
RUN set -ex; \
	docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \
	debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
	docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch"; \
	docker-php-ext-install exif gd intl ldap mbstring mcrypt opcache pdo pdo_mysql pdo_pgsql pgsql zip

# set recommended PHP.ini settings
# see https://secure.php.net/manual/en/opcache.installation.php
RUN { \
		echo 'opcache.memory_consumption=128'; \
		echo 'opcache.interned_strings_buffer=8'; \
		echo 'opcache.max_accelerated_files=4000'; \
		echo 'opcache.revalidate_freq=60'; \
		echo 'opcache.fast_shutdown=1'; \
		echo 'opcache.enable_cli=1'; \
	} > /usr/local/etc/php/conf.d/opcache-recommended.ini

# Enable Apache modules
RUN set -ex; \
        a2enmod rewrite; \
        a2enmod ssl;

# Packages to issue let's encrypt certificates
RUN set -ex ; \
        echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backport.list; \
        apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 8B48AD6246925553; \
        apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 7638D0442B90D010; \
        apt-get update; \
        apt-get install python-certbot-apache -t jessie-backports;

# You will have to set ServerName and run "certbot --apache" in the image

# PECL extensions
RUN set -ex \
	&& pecl install APCu-5.1.8 \
	&& pecl install memcached-3.0.3 \
	&& pecl install redis-3.1.2 \
	&& docker-php-ext-enable apcu memcached redis

ENV OWNCLOUD_VERSION 10.0.4
VOLUME /var/www/html

RUN curl -fsSL -o owncloud.tar.bz2 \
		"https://download.owncloud.org/community/owncloud-${OWNCLOUD_VERSION}.tar.bz2" \
	&& curl -fsSL -o owncloud.tar.bz2.asc \
		"https://download.owncloud.org/community/owncloud-${OWNCLOUD_VERSION}.tar.bz2.asc" \
	&& export GNUPGHOME="$(mktemp -d)" \
# gpg key from https://owncloud.org/owncloud.asc
	&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys E3036906AD9F30807351FAC32D5D5E97F6978A26 \
	&& gpg --batch --verify owncloud.tar.bz2.asc owncloud.tar.bz2 \
	&& rm -r "$GNUPGHOME" owncloud.tar.bz2.asc \
	&& tar -xjf owncloud.tar.bz2 -C /usr/src/ \
	&& rm owncloud.tar.bz2

VOLUME /etc/apache2
VOLUME /etc/letsencrypt

COPY docker-entrypoint.sh /usr/local/bin/

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["apache2-foreground"]
