summaryrefslogtreecommitdiffstats
path: root/Dockerfile.template
diff options
context:
space:
mode:
authorAleksa Sarai <cyphar@cyphar.com>2016-11-30 04:56:52 +1100
committerAleksa Sarai <cyphar@cyphar.com>2017-01-13 20:33:06 +1100
commit3efc37c75601146ad1db8e75430c811a8ec5ef67 (patch)
tree52559c7a6c6fb856cd081f01d45b4b4f8b1d61e9 /Dockerfile.template
parentc34d30fb49679a5bca90d2d3d37a6ce1dd6116e9 (diff)
version: move to separate versions and variants
In order to match ownCloud's Docker images, we need to provide -apache and -fpm variant images as well as maintaining version tags for older images. These scripts are improved versions of the ownCloud scripts[1] because they also automatically generate the directories with each ./update.sh, and also generate all aliases without needing human intervention. [1]: https://github.com/docker-library/owncloud/blob/master/generate-stackbrew-library.sh Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
Diffstat (limited to 'Dockerfile.template')
-rw-r--r--Dockerfile.template60
1 files changed, 60 insertions, 0 deletions
diff --git a/Dockerfile.template b/Dockerfile.template
new file mode 100644
index 00000000..3d713793
--- /dev/null
+++ b/Dockerfile.template
@@ -0,0 +1,60 @@
+FROM php:5.6-%%VARIANT%%
+
+RUN apt-get update && apt-get install -y \
+ bzip2 \
+ libcurl4-openssl-dev \
+ libfreetype6-dev \
+ libicu-dev \
+ libjpeg-dev \
+ libldap2-dev \
+ libmcrypt-dev \
+ libmemcached-dev \
+ libpng12-dev \
+ libpq-dev \
+ libxml2-dev \
+ && rm -rf /var/lib/apt/lists/*
+
+# https://docs.nextcloud.com/server/9/admin_manual/installation/source_installation.html
+RUN docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
+ && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu \
+ && docker-php-ext-install gd exif intl mbstring mcrypt ldap mysql opcache 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
+RUN a2enmod rewrite
+
+# PECL extensions
+RUN set -ex \
+ && pecl install APCu-4.0.10 \
+ && pecl install memcached-2.2.0 \
+ && pecl install redis-2.2.8 \
+ && docker-php-ext-enable apcu redis memcached
+RUN a2enmod rewrite
+
+ENV NEXTCLOUD_VERSION %%VERSION%%
+VOLUME /var/www/html
+
+RUN curl -fsSL -o nextcloud.tar.bz2 \
+ "https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_VERSION}.tar.bz2" \
+ && curl -fsSL -o nextcloud.tar.bz2.asc \
+ "https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_VERSION}.tar.bz2.asc" \
+ && export GNUPGHOME="$(mktemp -d)" \
+# gpg key from https://nextcloud.com/nextcloud.asc
+ && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 28806A878AE423A28372792ED75899B9A724937A \
+ && gpg --batch --verify nextcloud.tar.bz2.asc nextcloud.tar.bz2 \
+ && rm -r "$GNUPGHOME" nextcloud.tar.bz2.asc \
+ && tar -xjf nextcloud.tar.bz2 -C /usr/src/ \
+ && rm nextcloud.tar.bz2
+
+COPY docker-entrypoint.sh /entrypoint.sh
+
+ENTRYPOINT ["/entrypoint.sh"]
+CMD ["%%CMD%%"]