From 86c40037bfbbf1ff8516ceb37825419668e50602 Mon Sep 17 00:00:00 2001 From: Tilo Spannagel Date: Sat, 10 Jun 2017 23:15:01 +0200 Subject: [PATCH] Remove end of life versions --- .travis.yml | 2 - 9.0/apache/Dockerfile | 78 --------------------------------- 9.0/apache/apps.config.php | 15 ------- 9.0/apache/docker-entrypoint.sh | 54 ----------------------- 9.0/fpm/Dockerfile | 76 -------------------------------- 9.0/fpm/apps.config.php | 15 ------- 9.0/fpm/docker-entrypoint.sh | 54 ----------------------- update.sh | 64 +++++++++++++++------------ 8 files changed, 35 insertions(+), 323 deletions(-) delete mode 100644 9.0/apache/Dockerfile delete mode 100644 9.0/apache/apps.config.php delete mode 100755 9.0/apache/docker-entrypoint.sh delete mode 100644 9.0/fpm/Dockerfile delete mode 100644 9.0/fpm/apps.config.php delete mode 100755 9.0/fpm/docker-entrypoint.sh diff --git a/.travis.yml b/.travis.yml index 3ea7128..14d4ea1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,6 @@ env: - VERSION=11.0 VARIANT=apache - VERSION=10.0 VARIANT=fpm - VERSION=10.0 VARIANT=apache - - VERSION=9.0 VARIANT=fpm - - VERSION=9.0 VARIANT=apache install: - git clone https://github.com/docker-library/official-images.git ~/official-images diff --git a/9.0/apache/Dockerfile b/9.0/apache/Dockerfile deleted file mode 100644 index 07ede26..0000000 --- a/9.0/apache/Dockerfile +++ /dev/null @@ -1,78 +0,0 @@ -FROM php:5.6-apache - -RUN apt-get update && apt-get install -y \ - rsync \ - 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 9.0.58 -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 \ - && rm -rf /usr/src/nextcloud/updater \ - # https://docs.nextcloud.com/server/11/admin_manual/installation/installation_wizard.html#setting-strong-directory-permissions - && mkdir -p /usr/src/nextcloud/data \ - && mkdir -p /usr/src/nextcloud/custom_apps \ - # only used in nextcloud 9 (assets) - && mkdir -p /usr/src/nextcloud/assets \ - && find /usr/src/nextcloud/ -type f -print0 | xargs -0 chmod 0640 \ - && find /usr/src/nextcloud/ -type d -print0 | xargs -0 chmod 0750 \ - && chown -R root:www-data /usr/src/nextcloud/ \ - && chown -R www-data:www-data /usr/src/nextcloud/custom_apps/ \ - && chown -R www-data:www-data /usr/src/nextcloud/config/ \ - # only used in nextcloud 9 (assets) - && chown -R www-data:www-data /usr/src/nextcloud/assets/ \ - && chown -R www-data:www-data /usr/src/nextcloud/data/ \ - && chown -R www-data:www-data /usr/src/nextcloud/themes/ \ - && chmod +x /usr/src/nextcloud/occ - -COPY docker-entrypoint.sh /entrypoint.sh -COPY apps.config.php /usr/src/nextcloud/config/apps.config.php - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["apache2-foreground"] diff --git a/9.0/apache/apps.config.php b/9.0/apache/apps.config.php deleted file mode 100644 index a4bed83..0000000 --- a/9.0/apache/apps.config.php +++ /dev/null @@ -1,15 +0,0 @@ - array ( - 0 => array ( - "path" => OC::$SERVERROOT."/apps", - "url" => "/apps", - "writable" => false, - ), - 1 => array ( - "path" => OC::$SERVERROOT."/custom_apps", - "url" => "/custom_apps", - "writable" => true, - ), - ), -); diff --git a/9.0/apache/docker-entrypoint.sh b/9.0/apache/docker-entrypoint.sh deleted file mode 100755 index b1265d3..0000000 --- a/9.0/apache/docker-entrypoint.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -set -e - -# version_greater A B returns whether A > B -function version_greater() { - [[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; -} - -installed_version="0.0.0~unknown" -if [ -f /var/www/html/version.php ]; then - installed_version=$(php -r 'require "/var/www/html/version.php"; echo "$OC_VersionString";') -fi -image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo "$OC_VersionString";') - -if version_greater "$installed_version" "$image_version"; then - echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" - exit 1 -fi - -if version_greater "$image_version" "$installed_version"; then - if [ "$installed_version" != "0.0.0~unknown" ]; then - su - www-data -s /bin/bash -c 'php /var/www/html/occ app:list' > /tmp/list_before - fi - - rsync -a --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ - - if [ ! -d /var/www/html/config ]; then - cp -arT /usr/src/nextcloud/config /var/www/html/config - fi - - if [ ! -d /var/www/html/data ]; then - cp -arT /usr/src/nextcloud/data /var/www/html/data - fi - - if [ ! -d /var/www/html/custom_apps ]; then - cp -arT /usr/src/nextcloud/custom_apps /var/www/html/custom_apps - cp -a /usr/src/nextcloud/config/apps.config.php /var/www/html/config/apps.config.php - fi - - if [ ! -d /var/www/html/themes ]; then - cp -arT /usr/src/nextcloud/themes /var/www/html/themes - fi - - if [ "$installed_version" != "0.0.0~unknown" ]; then - su - www-data -s /bin/bash -c 'php /var/www/html/occ upgrade --no-app-disable' - - su - www-data -s /bin/bash -c 'php /var/www/html/occ app:list' > /tmp/list_after - echo "The following apps have beed disabled:" - diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 - rm -f /tmp/list_before /tmp/list_after - fi -fi - -exec "$@" diff --git a/9.0/fpm/Dockerfile b/9.0/fpm/Dockerfile deleted file mode 100644 index fd82cb3..0000000 --- a/9.0/fpm/Dockerfile +++ /dev/null @@ -1,76 +0,0 @@ -FROM php:5.6-fpm - -RUN apt-get update && apt-get install -y \ - rsync \ - 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 9.0.58 -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 \ - && rm -rf /usr/src/nextcloud/updater \ - # https://docs.nextcloud.com/server/11/admin_manual/installation/installation_wizard.html#setting-strong-directory-permissions - && mkdir -p /usr/src/nextcloud/data \ - && mkdir -p /usr/src/nextcloud/custom_apps \ - # only used in nextcloud 9 (assets) - && mkdir -p /usr/src/nextcloud/assets \ - && find /usr/src/nextcloud/ -type f -print0 | xargs -0 chmod 0640 \ - && find /usr/src/nextcloud/ -type d -print0 | xargs -0 chmod 0750 \ - && chown -R root:www-data /usr/src/nextcloud/ \ - && chown -R www-data:www-data /usr/src/nextcloud/custom_apps/ \ - && chown -R www-data:www-data /usr/src/nextcloud/config/ \ - # only used in nextcloud 9 (assets) - && chown -R www-data:www-data /usr/src/nextcloud/assets/ \ - && chown -R www-data:www-data /usr/src/nextcloud/data/ \ - && chown -R www-data:www-data /usr/src/nextcloud/themes/ \ - && chmod +x /usr/src/nextcloud/occ - -COPY docker-entrypoint.sh /entrypoint.sh -COPY apps.config.php /usr/src/nextcloud/config/apps.config.php - -ENTRYPOINT ["/entrypoint.sh"] -CMD ["php-fpm"] diff --git a/9.0/fpm/apps.config.php b/9.0/fpm/apps.config.php deleted file mode 100644 index a4bed83..0000000 --- a/9.0/fpm/apps.config.php +++ /dev/null @@ -1,15 +0,0 @@ - array ( - 0 => array ( - "path" => OC::$SERVERROOT."/apps", - "url" => "/apps", - "writable" => false, - ), - 1 => array ( - "path" => OC::$SERVERROOT."/custom_apps", - "url" => "/custom_apps", - "writable" => true, - ), - ), -); diff --git a/9.0/fpm/docker-entrypoint.sh b/9.0/fpm/docker-entrypoint.sh deleted file mode 100755 index b1265d3..0000000 --- a/9.0/fpm/docker-entrypoint.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -set -e - -# version_greater A B returns whether A > B -function version_greater() { - [[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; -} - -installed_version="0.0.0~unknown" -if [ -f /var/www/html/version.php ]; then - installed_version=$(php -r 'require "/var/www/html/version.php"; echo "$OC_VersionString";') -fi -image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo "$OC_VersionString";') - -if version_greater "$installed_version" "$image_version"; then - echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" - exit 1 -fi - -if version_greater "$image_version" "$installed_version"; then - if [ "$installed_version" != "0.0.0~unknown" ]; then - su - www-data -s /bin/bash -c 'php /var/www/html/occ app:list' > /tmp/list_before - fi - - rsync -a --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ - - if [ ! -d /var/www/html/config ]; then - cp -arT /usr/src/nextcloud/config /var/www/html/config - fi - - if [ ! -d /var/www/html/data ]; then - cp -arT /usr/src/nextcloud/data /var/www/html/data - fi - - if [ ! -d /var/www/html/custom_apps ]; then - cp -arT /usr/src/nextcloud/custom_apps /var/www/html/custom_apps - cp -a /usr/src/nextcloud/config/apps.config.php /var/www/html/config/apps.config.php - fi - - if [ ! -d /var/www/html/themes ]; then - cp -arT /usr/src/nextcloud/themes /var/www/html/themes - fi - - if [ "$installed_version" != "0.0.0~unknown" ]; then - su - www-data -s /bin/bash -c 'php /var/www/html/occ upgrade --no-app-disable' - - su - www-data -s /bin/bash -c 'php /var/www/html/occ app:list' > /tmp/list_after - echo "The following apps have beed disabled:" - diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 - rm -f /tmp/list_before /tmp/list_after - fi -fi - -exec "$@" diff --git a/update.sh b/update.sh index 4d3a54e..ddbb1d0 100755 --- a/update.sh +++ b/update.sh @@ -16,47 +16,53 @@ latests=( $( curl -fsSL 'https://download.nextcloud.com/server/releases/' |tac|t grep -oE '[[:digit:]]+(.[[:digit:]]+)+' | \ sort -uV ) ) +find -maxdepth 1 -type d -regextype sed -regex '\./[[:digit:]]\+\.[[:digit:]]\+' -exec rm -r '{}' \; + travisEnv= for latest in "${latests[@]}"; do version=$(echo "$latest" | cut -d. -f1-2) - for variant in apache fpm; do - # Create the version+variant directory with a Dockerfile. - mkdir -p "$version/$variant" + # Only add versions >= 10 + if version_greater_or_equal "$version" "10.0"; then - template="Dockerfile.template" - if version_greater_or_equal "$version" "11.0"; then - template="Dockerfile-php7.template" - fi - cp "$template" "$version/$variant/Dockerfile" + for variant in apache fpm; do + # Create the version+variant directory with a Dockerfile. + mkdir -p "$version/$variant" - echo "updating $latest [$version] $variant" + template="Dockerfile.template" + if version_greater_or_equal "$version" "11.0"; then + template="Dockerfile-php7.template" + fi + cp "$template" "$version/$variant/Dockerfile" - # Replace the variables. - sed -ri -e ' - s/%%VARIANT%%/'"$variant"'/g; - s/%%VERSION%%/'"$latest"'/g; - s/%%CMD%%/'"${cmd[$variant]}"'/g; - ' "$version/$variant/Dockerfile" + echo "updating $latest [$version] $variant" - # Remove Apache commands if we're not an Apache variant. - if [ "$variant" != "apache" ]; then - sed -ri -e '/a2enmod/d' "$version/$variant/Dockerfile" - fi + # Replace the variables. + sed -ri -e ' + s/%%VARIANT%%/'"$variant"'/g; + s/%%VERSION%%/'"$latest"'/g; + s/%%CMD%%/'"${cmd[$variant]}"'/g; + ' "$version/$variant/Dockerfile" - # Remove the assets folder if version >= 10.0 - if version_greater_or_equal "$version" "10.0"; then - sed -ri -e '/assets/d' "$version/$variant/Dockerfile" - fi + # Remove Apache commands if we're not an Apache variant. + if [ "$variant" != "apache" ]; then + sed -ri -e '/a2enmod/d' "$version/$variant/Dockerfile" + fi - # Copy the docker-entrypoint. - cp docker-entrypoint.sh "$version/$variant/docker-entrypoint.sh" + # Remove the assets folder if version >= 10.0 + if version_greater_or_equal "$version" "10.0"; then + sed -ri -e '/assets/d' "$version/$variant/Dockerfile" + fi - # Copy apps.config.php - cp apps.config.php "$version/$variant/apps.config.php" + # Copy the docker-entrypoint. + cp docker-entrypoint.sh "$version/$variant/docker-entrypoint.sh" - travisEnv='\n - VERSION='"$version"' VARIANT='"$variant$travisEnv" - done + # Copy apps.config.php + cp apps.config.php "$version/$variant/apps.config.php" + + travisEnv='\n - VERSION='"$version"' VARIANT='"$variant$travisEnv" + done + fi done # update .travis.yml