From 1dd6a708f9c1794729f9481ff91b96be0f05d8da Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Thu, 6 Oct 2016 17:50:03 +0300 Subject: [PATCH 01/17] Dockerfile converted to Alpine Linux based image and PHP7 --- Dockerfile | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8a666ad4..5ab1ce67 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,7 @@ -FROM php:5.6-fpm - -RUN apt-get update && apt-get install -y \ - bzip2 \ - libcurl4-openssl-dev \ - libfreetype6-dev \ - libicu-dev \ - libjpeg-dev \ - libmcrypt-dev \ - libmemcached-dev \ - libpng12-dev \ - libpq-dev \ - libxml2-dev \ - && rm -rf /var/lib/apt/lists/* +FROM php:7.0-fpm-alpine # 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-install gd exif intl mbstring mcrypt mysql opcache pdo_mysql pdo_pgsql pgsql zip +RUN docker-php-ext-install gd exif intl mbstring mcrypt opcache pdo_mysql pdo_pgsql pgsql zip # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php @@ -28,12 +14,28 @@ RUN { \ echo 'opcache.enable_cli=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini -# PECL extensions +# PECL & source PHP 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 + && apk update \ + && apk add autoconf make g++ gcc git file gnupg re2c \ + #&& echo "@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \ + #&& echo '@community http://nl.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories \ + #&& apk add php7-session@community \ + #&& apk add php7-memcached@testing \ + && pecl install APCu-5.1.6 \ + && git clone https://github.com/phpredis/phpredis.git \ + && cd phpredis \ + && git checkout php7 \ + && phpize \ + && ./configure \ + && make && make install \ + && cd .. \ + && rm -rf phpredis \ + && docker-php-ext-enable redis apcu \ + && apk del autoconf make g++ gcc git \ + && rm -rf /var/cache/apk/* + + ENV NEXTCLOUD_VERSION 10.0.0 VOLUME /var/www/html @@ -43,7 +45,7 @@ RUN curl -fsSL -o nextcloud.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 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 \ From da556e0128aa9274abf75445bdaa9655e1d6d806 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Fri, 7 Oct 2016 14:55:32 +0300 Subject: [PATCH 02/17] Shell moved from bash to ash due to compatibility with Alpine Linux --- docker-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 62d16254..8a21ccc2 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/ash set -e if [ ! -e '/var/www/html/version.php' ]; then From c35c5abb0f06be6f729ff1ec85a75f86fb262dfe Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Mon, 10 Oct 2016 15:41:23 +0300 Subject: [PATCH 03/17] Solved dev lips dependency problems --- Dockerfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5ab1ce67..8f7dd8ec 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,6 @@ FROM php:7.0-fpm-alpine -# https://docs.nextcloud.com/server/9/admin_manual/installation/source_installation.html -RUN docker-php-ext-install gd exif intl mbstring mcrypt opcache pdo_mysql pdo_pgsql pgsql zip +ENV NEXTCLOUD_VERSION 10.0.0 # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php @@ -14,14 +13,18 @@ RUN { \ echo 'opcache.enable_cli=1'; \ } > /usr/local/etc/php/conf.d/opcache-recommended.ini -# PECL & source PHP extensions +# Install PHP extensions +# https://docs.nextcloud.com/server/9/admin_manual/installation/source_installation.html RUN set -ex \ && apk update \ - && apk add autoconf make g++ gcc git file gnupg re2c \ + && apk add build-base python-dev py-pip jpeg-dev zlib-dev postgresql-dev libmcrypt-dev libpng-dev \ + && apk add autoconf make g++ gcc git file gnupg re2c icu icu-dev \ #&& echo "@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \ #&& echo '@community http://nl.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories \ #&& apk add php7-session@community \ #&& apk add php7-memcached@testing \ + && docker-php-ext-install gd exif intl mbstring mcrypt opcache pdo_mysql pdo_pgsql pgsql zip \ + && docker-php-ext-enable gd intl exif mbstring mcrypt opcache pdo_mysql pdo_pgsql pgsql zip \ && pecl install APCu-5.1.6 \ && git clone https://github.com/phpredis/phpredis.git \ && cd phpredis \ @@ -32,12 +35,9 @@ RUN set -ex \ && cd .. \ && rm -rf phpredis \ && docker-php-ext-enable redis apcu \ - && apk del autoconf make g++ gcc git \ + && apk del autoconf make g++ gcc git py-pip zlib-dev jpeg-dev libmcrypt-dev libpng-dev\ && rm -rf /var/cache/apk/* - - -ENV NEXTCLOUD_VERSION 10.0.0 VOLUME /var/www/html RUN curl -fsSL -o nextcloud.tar.bz2 \ From f5a6136e6a9f6eead4944554b842605f969268b9 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Tue, 11 Oct 2016 02:00:38 +0300 Subject: [PATCH 04/17] Fixed dependency problems --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8f7dd8ec..9389c372 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,8 +17,9 @@ RUN { \ # https://docs.nextcloud.com/server/9/admin_manual/installation/source_installation.html RUN set -ex \ && apk update \ - && apk add build-base python-dev py-pip jpeg-dev zlib-dev postgresql-dev libmcrypt-dev libpng-dev \ - && apk add autoconf make g++ gcc git file gnupg re2c icu icu-dev \ + && apk add build-base python-dev py-pip jpeg-dev jpeg zlib zlib-dev \ + postgresql-dev libmcrypt-dev libmcrypt libpng-dev libpng \ + autoconf make g++ gcc git file gnupg re2c icu icu-dev \ #&& echo "@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \ #&& echo '@community http://nl.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories \ #&& apk add php7-session@community \ From 8fb6f75402ffeae71d5d1721e60237c047263ad9 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Tue, 11 Oct 2016 02:57:32 +0300 Subject: [PATCH 05/17] Added an optional timezone configuration with the TZ ENV variable --- Dockerfile | 2 +- docker-entrypoint.sh | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9389c372..f68fbc08 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,7 @@ RUN set -ex \ && apk update \ && apk add build-base python-dev py-pip jpeg-dev jpeg zlib zlib-dev \ postgresql-dev libmcrypt-dev libmcrypt libpng-dev libpng \ - autoconf make g++ gcc git file gnupg re2c icu icu-dev \ + autoconf make g++ gcc git file gnupg re2c icu icu-dev tzdata \ #&& echo "@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \ #&& echo '@community http://nl.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories \ #&& apk add php7-session@community \ diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 8a21ccc2..3580f5cc 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -6,4 +6,8 @@ if [ ! -e '/var/www/html/version.php' ]; then chown -R www-data /var/www/html fi +if [ -n "$TZ"]; then + cp /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +fi + exec "$@" From 975d7d8dbf599ed5e03ca863837fc224cb3595bc Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Fri, 14 Oct 2016 18:09:15 +0300 Subject: [PATCH 06/17] Separate image tag directories --- php5.6/fpm/Dockerfile | 58 +++++++++++++++++++ .../fpm/docker-entrypoint.sh | 0 Dockerfile => php7.0/alpine-fpm/Dockerfile | 0 php7.0/alpine-fpm/docker-entrypoint.sh | 13 +++++ 4 files changed, 71 insertions(+) create mode 100644 php5.6/fpm/Dockerfile rename docker-entrypoint.sh => php5.6/fpm/docker-entrypoint.sh (100%) rename Dockerfile => php7.0/alpine-fpm/Dockerfile (100%) create mode 100755 php7.0/alpine-fpm/docker-entrypoint.sh diff --git a/php5.6/fpm/Dockerfile b/php5.6/fpm/Dockerfile new file mode 100644 index 00000000..4838649d --- /dev/null +++ b/php5.6/fpm/Dockerfile @@ -0,0 +1,58 @@ +FROM php:5.6-fpm + +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 + +# 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 + +ENV NEXTCLOUD_VERSION 10.0.1 +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 ["php-fpm"] diff --git a/docker-entrypoint.sh b/php5.6/fpm/docker-entrypoint.sh similarity index 100% rename from docker-entrypoint.sh rename to php5.6/fpm/docker-entrypoint.sh diff --git a/Dockerfile b/php7.0/alpine-fpm/Dockerfile similarity index 100% rename from Dockerfile rename to php7.0/alpine-fpm/Dockerfile diff --git a/php7.0/alpine-fpm/docker-entrypoint.sh b/php7.0/alpine-fpm/docker-entrypoint.sh new file mode 100755 index 00000000..3580f5cc --- /dev/null +++ b/php7.0/alpine-fpm/docker-entrypoint.sh @@ -0,0 +1,13 @@ +#!/bin/ash +set -e + +if [ ! -e '/var/www/html/version.php' ]; then + tar cf - --one-file-system -C /usr/src/nextcloud . | tar xf - + chown -R www-data /var/www/html +fi + +if [ -n "$TZ"]; then + cp /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +fi + +exec "$@" From 9146eb11d46073e0e67af750f54edcab0bfb37bb Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Fri, 14 Oct 2016 18:38:46 +0300 Subject: [PATCH 07/17] added travis config --- .travis.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..b17ba318 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,23 @@ +language: bash +services: docker + +env: + - VARIANT=php5.6/fpm + - VARIANT=php7.0/alpine-fpm + +install: + - git clone https://github.com/docker-library/official-images.git ~/official-images + +before_script: + - env | sort + - cd "$VARIANT" + - slash='/'; image="nextcloud:${VARIANT//$slash/-}" + +script: + - docker build -t "$image" . + - ~/official-images/test/run.sh "$image" + +after_script: + - docker images + +# vim:set et ts=2 sw=2: From 444f6f9c264082b2e83356dbad31260110c37eac Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Fri, 14 Oct 2016 18:42:44 +0300 Subject: [PATCH 08/17] Initializing travis build --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b17ba318..b9c71bce 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,5 +19,5 @@ script: after_script: - docker images - + # vim:set et ts=2 sw=2: From 2718d61be0f8cf5ffc38991ef4eca550b36408e7 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Sat, 15 Oct 2016 17:18:16 +0300 Subject: [PATCH 09/17] Added ldap support to the alpine-php7.0-fpm image --- php7.0/alpine-fpm/Dockerfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/php7.0/alpine-fpm/Dockerfile b/php7.0/alpine-fpm/Dockerfile index f68fbc08..06e85761 100644 --- a/php7.0/alpine-fpm/Dockerfile +++ b/php7.0/alpine-fpm/Dockerfile @@ -17,15 +17,14 @@ RUN { \ # https://docs.nextcloud.com/server/9/admin_manual/installation/source_installation.html RUN set -ex \ && apk update \ - && apk add build-base python-dev py-pip jpeg-dev jpeg zlib zlib-dev \ + && apk add build-base python-dev py-pip jpeg-dev jpeg \ + libldap openldap-dev zlib zlib-dev \ postgresql-dev libmcrypt-dev libmcrypt libpng-dev libpng \ autoconf make g++ gcc git file gnupg re2c icu icu-dev tzdata \ - #&& echo "@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \ - #&& echo '@community http://nl.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories \ - #&& apk add php7-session@community \ - #&& apk add php7-memcached@testing \ - && docker-php-ext-install gd exif intl mbstring mcrypt opcache pdo_mysql pdo_pgsql pgsql zip \ - && docker-php-ext-enable gd intl exif mbstring mcrypt opcache pdo_mysql pdo_pgsql pgsql zip \ + && docker-php-ext-install gd exif intl mbstring mcrypt opcache \ + pdo_mysql pdo_pgsql pgsql zip ldap \ + && docker-php-ext-enable gd exif intl mbstring mcrypt opcache \ + pdo_mysql pdo_pgsql pgsql zip ldap \ && pecl install APCu-5.1.6 \ && git clone https://github.com/phpredis/phpredis.git \ && cd phpredis \ @@ -36,7 +35,8 @@ RUN set -ex \ && cd .. \ && rm -rf phpredis \ && docker-php-ext-enable redis apcu \ - && apk del autoconf make g++ gcc git py-pip zlib-dev jpeg-dev libmcrypt-dev libpng-dev\ + && apk del autoconf make g++ gcc git py-pip zlib-dev \ + jpeg-dev libmcrypt-dev libpng-dev openldap-dev \ && rm -rf /var/cache/apk/* VOLUME /var/www/html From a81715ef80341023b572a6f6f77b7b78037668a2 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Sat, 15 Oct 2016 17:21:30 +0300 Subject: [PATCH 10/17] Reverting to bash for the Debian based image --- php5.6/fpm/docker-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php5.6/fpm/docker-entrypoint.sh b/php5.6/fpm/docker-entrypoint.sh index 3580f5cc..2bb56c45 100755 --- a/php5.6/fpm/docker-entrypoint.sh +++ b/php5.6/fpm/docker-entrypoint.sh @@ -1,4 +1,4 @@ -#!/bin/ash +#!/bin/bash set -e if [ ! -e '/var/www/html/version.php' ]; then From a170501ad9c90912bb7f303166e94f517be2b2a7 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Tue, 18 Oct 2016 14:04:04 +0300 Subject: [PATCH 11/17] Updated to NextCloud 10.0.1 --- php7.0/alpine-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php7.0/alpine-fpm/Dockerfile b/php7.0/alpine-fpm/Dockerfile index 06e85761..de3f39c9 100644 --- a/php7.0/alpine-fpm/Dockerfile +++ b/php7.0/alpine-fpm/Dockerfile @@ -1,6 +1,6 @@ FROM php:7.0-fpm-alpine -ENV NEXTCLOUD_VERSION 10.0.0 +ENV NEXTCLOUD_VERSION 10.0.1 # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php From e44e96a9c7f0edd3a7cc45162e3a8524a203f854 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Thu, 29 Dec 2016 01:00:04 +0200 Subject: [PATCH 12/17] Updated to Nextcloud 11.0.0 --- php7.0/alpine-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php7.0/alpine-fpm/Dockerfile b/php7.0/alpine-fpm/Dockerfile index de3f39c9..04d787f3 100644 --- a/php7.0/alpine-fpm/Dockerfile +++ b/php7.0/alpine-fpm/Dockerfile @@ -1,6 +1,6 @@ FROM php:7.0-fpm-alpine -ENV NEXTCLOUD_VERSION 10.0.1 +ENV NEXTCLOUD_VERSION 11.0.0 # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php From 5998fbe4cc30655bc9dd356a50351b076de91452 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Fri, 6 Jan 2017 15:02:53 +0200 Subject: [PATCH 13/17] Images tree reorganized as PR #21 --- 10.0/alpine-fpm/Dockerfile | 59 +++++++++++++++++++ .../alpine-fpm/docker-entrypoint.sh | 0 {php7.0 => 11.0}/alpine-fpm/Dockerfile | 0 11.0/alpine-fpm/docker-entrypoint.sh | 13 ++++ 4 files changed, 72 insertions(+) create mode 100644 10.0/alpine-fpm/Dockerfile rename {php7.0 => 10.0}/alpine-fpm/docker-entrypoint.sh (100%) rename {php7.0 => 11.0}/alpine-fpm/Dockerfile (100%) create mode 100755 11.0/alpine-fpm/docker-entrypoint.sh diff --git a/10.0/alpine-fpm/Dockerfile b/10.0/alpine-fpm/Dockerfile new file mode 100644 index 00000000..de3f39c9 --- /dev/null +++ b/10.0/alpine-fpm/Dockerfile @@ -0,0 +1,59 @@ +FROM php:7.0-fpm-alpine + +ENV NEXTCLOUD_VERSION 10.0.1 + +# 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 + +# Install PHP extensions +# https://docs.nextcloud.com/server/9/admin_manual/installation/source_installation.html +RUN set -ex \ + && apk update \ + && apk add build-base python-dev py-pip jpeg-dev jpeg \ + libldap openldap-dev zlib zlib-dev \ + postgresql-dev libmcrypt-dev libmcrypt libpng-dev libpng \ + autoconf make g++ gcc git file gnupg re2c icu icu-dev tzdata \ + && docker-php-ext-install gd exif intl mbstring mcrypt opcache \ + pdo_mysql pdo_pgsql pgsql zip ldap \ + && docker-php-ext-enable gd exif intl mbstring mcrypt opcache \ + pdo_mysql pdo_pgsql pgsql zip ldap \ + && pecl install APCu-5.1.6 \ + && git clone https://github.com/phpredis/phpredis.git \ + && cd phpredis \ + && git checkout php7 \ + && phpize \ + && ./configure \ + && make && make install \ + && cd .. \ + && rm -rf phpredis \ + && docker-php-ext-enable redis apcu \ + && apk del autoconf make g++ gcc git py-pip zlib-dev \ + jpeg-dev libmcrypt-dev libpng-dev openldap-dev \ + && rm -rf /var/cache/apk/* + +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 ["php-fpm"] diff --git a/php7.0/alpine-fpm/docker-entrypoint.sh b/10.0/alpine-fpm/docker-entrypoint.sh similarity index 100% rename from php7.0/alpine-fpm/docker-entrypoint.sh rename to 10.0/alpine-fpm/docker-entrypoint.sh diff --git a/php7.0/alpine-fpm/Dockerfile b/11.0/alpine-fpm/Dockerfile similarity index 100% rename from php7.0/alpine-fpm/Dockerfile rename to 11.0/alpine-fpm/Dockerfile diff --git a/11.0/alpine-fpm/docker-entrypoint.sh b/11.0/alpine-fpm/docker-entrypoint.sh new file mode 100755 index 00000000..3580f5cc --- /dev/null +++ b/11.0/alpine-fpm/docker-entrypoint.sh @@ -0,0 +1,13 @@ +#!/bin/ash +set -e + +if [ ! -e '/var/www/html/version.php' ]; then + tar cf - --one-file-system -C /usr/src/nextcloud . | tar xf - + chown -R www-data /var/www/html +fi + +if [ -n "$TZ"]; then + cp /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +fi + +exec "$@" From 08c5bbde9fb87078248d6b2fd99d3d58415439b1 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Mon, 23 Jan 2017 21:15:29 +0200 Subject: [PATCH 14/17] Fixed problem with GD and jpeg image processing --- 10.0/alpine-fpm/Dockerfile | 10 +++++++++- 11.0/alpine-fpm/Dockerfile | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/10.0/alpine-fpm/Dockerfile b/10.0/alpine-fpm/Dockerfile index de3f39c9..88e0e6a3 100644 --- a/10.0/alpine-fpm/Dockerfile +++ b/10.0/alpine-fpm/Dockerfile @@ -19,9 +19,16 @@ RUN set -ex \ && apk update \ && apk add build-base python-dev py-pip jpeg-dev jpeg \ libldap openldap-dev zlib zlib-dev \ + freetype freetype-dev libjpeg-turbo libjpeg-turbo-dev \ postgresql-dev libmcrypt-dev libmcrypt libpng-dev libpng \ autoconf make g++ gcc git file gnupg re2c icu icu-dev tzdata \ - && docker-php-ext-install gd exif intl mbstring mcrypt opcache \ + && docker-php-ext-configure gd \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include \ + --with-jpeg-dir=/usr/include \ + && NPROC=$(getconf _NPROCESSORS_ONLN) \ + && docker-php-ext-install -j${NPROC} gd \ + && docker-php-ext-install exif intl mbstring mcrypt opcache \ pdo_mysql pdo_pgsql pgsql zip ldap \ && docker-php-ext-enable gd exif intl mbstring mcrypt opcache \ pdo_mysql pdo_pgsql pgsql zip ldap \ @@ -37,6 +44,7 @@ RUN set -ex \ && docker-php-ext-enable redis apcu \ && apk del autoconf make g++ gcc git py-pip zlib-dev \ jpeg-dev libmcrypt-dev libpng-dev openldap-dev \ + freetype-dev libjpeg-turbo-dev \ && rm -rf /var/cache/apk/* VOLUME /var/www/html diff --git a/11.0/alpine-fpm/Dockerfile b/11.0/alpine-fpm/Dockerfile index 04d787f3..cf8e87a5 100644 --- a/11.0/alpine-fpm/Dockerfile +++ b/11.0/alpine-fpm/Dockerfile @@ -19,9 +19,16 @@ RUN set -ex \ && apk update \ && apk add build-base python-dev py-pip jpeg-dev jpeg \ libldap openldap-dev zlib zlib-dev \ + freetype freetype-dev libjpeg-turbo libjpeg-turbo-dev \ postgresql-dev libmcrypt-dev libmcrypt libpng-dev libpng \ autoconf make g++ gcc git file gnupg re2c icu icu-dev tzdata \ - && docker-php-ext-install gd exif intl mbstring mcrypt opcache \ + && docker-php-ext-configure gd \ + --with-freetype-dir=/usr/include/ \ + --with-png-dir=/usr/include \ + --with-jpeg-dir=/usr/include \ + && NPROC=$(getconf _NPROCESSORS_ONLN) \ + && docker-php-ext-install -j${NPROC} gd \ + && docker-php-ext-install exif intl mbstring mcrypt opcache \ pdo_mysql pdo_pgsql pgsql zip ldap \ && docker-php-ext-enable gd exif intl mbstring mcrypt opcache \ pdo_mysql pdo_pgsql pgsql zip ldap \ @@ -37,6 +44,7 @@ RUN set -ex \ && docker-php-ext-enable redis apcu \ && apk del autoconf make g++ gcc git py-pip zlib-dev \ jpeg-dev libmcrypt-dev libpng-dev openldap-dev \ + freetype-dev libjpeg-turbo-dev \ && rm -rf /var/cache/apk/* VOLUME /var/www/html From a97cc2a83db1c5e9f1be55600cf87d05c9eb5213 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Mon, 23 Jan 2017 21:15:58 +0200 Subject: [PATCH 15/17] Image upgraded to NextCloud 11.0.1 --- 11.0/alpine-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/11.0/alpine-fpm/Dockerfile b/11.0/alpine-fpm/Dockerfile index cf8e87a5..497d33e1 100644 --- a/11.0/alpine-fpm/Dockerfile +++ b/11.0/alpine-fpm/Dockerfile @@ -1,6 +1,6 @@ FROM php:7.0-fpm-alpine -ENV NEXTCLOUD_VERSION 11.0.0 +ENV NEXTCLOUD_VERSION 11.0.1 # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php From 9daa5044ed5635bcb3f9c69f70348eab9cc4fb5e Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Mon, 23 Jan 2017 21:39:02 +0200 Subject: [PATCH 16/17] Image updated to NextCloud 10.0.3 --- 10.0/alpine-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/10.0/alpine-fpm/Dockerfile b/10.0/alpine-fpm/Dockerfile index 88e0e6a3..a647b3b2 100644 --- a/10.0/alpine-fpm/Dockerfile +++ b/10.0/alpine-fpm/Dockerfile @@ -1,6 +1,6 @@ FROM php:7.0-fpm-alpine -ENV NEXTCLOUD_VERSION 10.0.1 +ENV NEXTCLOUD_VERSION 10.0.3 # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php From c5c8eccbeed06352a28126f48f4d9730351451e7 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Mon, 23 Jan 2017 21:51:59 +0200 Subject: [PATCH 17/17] "Moved NEXTCLOUD_VERSION before the `fetching nextcloud` layer --- 10.0/alpine-fpm/Dockerfile | 4 ++-- 11.0/alpine-fpm/Dockerfile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/10.0/alpine-fpm/Dockerfile b/10.0/alpine-fpm/Dockerfile index a647b3b2..b016d20a 100644 --- a/10.0/alpine-fpm/Dockerfile +++ b/10.0/alpine-fpm/Dockerfile @@ -1,7 +1,5 @@ FROM php:7.0-fpm-alpine -ENV NEXTCLOUD_VERSION 10.0.3 - # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN { \ @@ -49,6 +47,8 @@ RUN set -ex \ VOLUME /var/www/html +ENV NEXTCLOUD_VERSION 10.0.3 + 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 \ diff --git a/11.0/alpine-fpm/Dockerfile b/11.0/alpine-fpm/Dockerfile index 497d33e1..ade5ec2a 100644 --- a/11.0/alpine-fpm/Dockerfile +++ b/11.0/alpine-fpm/Dockerfile @@ -1,7 +1,5 @@ FROM php:7.0-fpm-alpine -ENV NEXTCLOUD_VERSION 11.0.1 - # set recommended PHP.ini settings # see https://secure.php.net/manual/en/opcache.installation.php RUN { \ @@ -49,6 +47,8 @@ RUN set -ex \ VOLUME /var/www/html +ENV NEXTCLOUD_VERSION 11.0.1 + 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 \