diff --git a/.travis.yml b/.travis.yml index 29616dc..06aa4c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,10 +4,14 @@ language: bash sudo: 9000 env: - - VERSION=8.1 - - VERSION=8.0 - - VERSION=7.0 - - VERSION=6.0 + - VERSION=8.1 VARIANT=fpm + - VERSION=8.1 VARIANT=apache + - VERSION=8.0 VARIANT=fpm + - VERSION=8.0 VARIANT=apache + - VERSION=7.0 VARIANT=fpm + - VERSION=7.0 VARIANT=apache + - VERSION=6.0 VARIANT=fpm + - VERSION=6.0 VARIANT=apache install: - git clone https://github.com/docker-library/official-images.git ~/official-images @@ -15,10 +19,10 @@ install: before_script: - env | sort - cd "$VERSION" - - image="owncloud:$VERSION" + - image="owncloud:${VERSION}${VARIANT:+-$VARIANT}" script: - - docker build -t "$image" . + - docker build -t "$image" "${VARIANT}" - ~/official-images/test/run.sh "$image" after_script: diff --git a/6.0/Dockerfile b/6.0/apache/Dockerfile similarity index 100% rename from 6.0/Dockerfile rename to 6.0/apache/Dockerfile diff --git a/6.0/docker-entrypoint.sh b/6.0/apache/docker-entrypoint.sh similarity index 100% rename from 6.0/docker-entrypoint.sh rename to 6.0/apache/docker-entrypoint.sh diff --git a/6.0/fpm/Dockerfile b/6.0/fpm/Dockerfile new file mode 100644 index 0000000..9f34ac4 --- /dev/null +++ b/6.0/fpm/Dockerfile @@ -0,0 +1,47 @@ +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 \ + libpng12-dev \ + libpq-dev \ + libxml2-dev \ + && rm -rf /var/lib/apt/lists/* + +#gpg key from https://owncloud.org/owncloud.asc +RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys E3036906AD9F30807351FAC32D5D5E97F6978A26 + +# https://doc.owncloud.org/server/8.1/admin_manual/installation/source_installation.html#prerequisites +RUN docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-install gd intl mbstring mcrypt 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 + +ENV OWNCLOUD_VERSION 6.0.9 +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" \ + && gpg --verify owncloud.tar.bz2.asc \ + && tar -xjf owncloud.tar.bz2 -C /usr/src/ \ + && rm owncloud.tar.bz2 owncloud.tar.bz2.asc + +COPY docker-entrypoint.sh /entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] diff --git a/7.0/docker-entrypoint.sh b/6.0/fpm/docker-entrypoint.sh similarity index 100% rename from 7.0/docker-entrypoint.sh rename to 6.0/fpm/docker-entrypoint.sh diff --git a/7.0/Dockerfile b/7.0/apache/Dockerfile similarity index 100% rename from 7.0/Dockerfile rename to 7.0/apache/Dockerfile diff --git a/8.0/docker-entrypoint.sh b/7.0/apache/docker-entrypoint.sh similarity index 100% rename from 8.0/docker-entrypoint.sh rename to 7.0/apache/docker-entrypoint.sh diff --git a/7.0/fpm/Dockerfile b/7.0/fpm/Dockerfile new file mode 100644 index 0000000..35677b6 --- /dev/null +++ b/7.0/fpm/Dockerfile @@ -0,0 +1,47 @@ +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 \ + libpng12-dev \ + libpq-dev \ + libxml2-dev \ + && rm -rf /var/lib/apt/lists/* + +#gpg key from https://owncloud.org/owncloud.asc +RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys E3036906AD9F30807351FAC32D5D5E97F6978A26 + +# https://doc.owncloud.org/server/8.1/admin_manual/installation/source_installation.html#prerequisites +RUN docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-install gd intl mbstring mcrypt 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 + +ENV OWNCLOUD_VERSION 7.0.10 +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" \ + && gpg --verify owncloud.tar.bz2.asc \ + && tar -xjf owncloud.tar.bz2 -C /usr/src/ \ + && rm owncloud.tar.bz2 owncloud.tar.bz2.asc + +COPY docker-entrypoint.sh /entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] diff --git a/8.1/docker-entrypoint.sh b/7.0/fpm/docker-entrypoint.sh similarity index 100% rename from 8.1/docker-entrypoint.sh rename to 7.0/fpm/docker-entrypoint.sh diff --git a/8.0/Dockerfile b/8.0/apache/Dockerfile similarity index 100% rename from 8.0/Dockerfile rename to 8.0/apache/Dockerfile diff --git a/8.0/apache/docker-entrypoint.sh b/8.0/apache/docker-entrypoint.sh new file mode 100755 index 0000000..40aa8a1 --- /dev/null +++ b/8.0/apache/docker-entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -e + +if [ ! -e '/var/www/html/version.php' ]; then + tar cf - --one-file-system -C /usr/src/owncloud . | tar xf - + chown -R www-data /var/www/html +fi + +exec "$@" diff --git a/8.0/fpm/Dockerfile b/8.0/fpm/Dockerfile new file mode 100644 index 0000000..3f912c4 --- /dev/null +++ b/8.0/fpm/Dockerfile @@ -0,0 +1,51 @@ +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 \ + libpng12-dev \ + libpq-dev \ + libxml2-dev \ + && rm -rf /var/lib/apt/lists/* + +#gpg key from https://owncloud.org/owncloud.asc +RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys E3036906AD9F30807351FAC32D5D5E97F6978A26 + +# https://doc.owncloud.org/server/8.1/admin_manual/installation/source_installation.html#prerequisites +RUN docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-install gd intl mbstring mcrypt 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 pecl install APCu-beta \ + && docker-php-ext-enable apcu + +ENV OWNCLOUD_VERSION 8.0.8 +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" \ + && gpg --verify owncloud.tar.bz2.asc \ + && tar -xjf owncloud.tar.bz2 -C /usr/src/ \ + && rm owncloud.tar.bz2 owncloud.tar.bz2.asc + +COPY docker-entrypoint.sh /entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] diff --git a/8.0/fpm/docker-entrypoint.sh b/8.0/fpm/docker-entrypoint.sh new file mode 100755 index 0000000..40aa8a1 --- /dev/null +++ b/8.0/fpm/docker-entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -e + +if [ ! -e '/var/www/html/version.php' ]; then + tar cf - --one-file-system -C /usr/src/owncloud . | tar xf - + chown -R www-data /var/www/html +fi + +exec "$@" diff --git a/8.1/Dockerfile b/8.1/apache/Dockerfile similarity index 100% rename from 8.1/Dockerfile rename to 8.1/apache/Dockerfile diff --git a/8.1/apache/docker-entrypoint.sh b/8.1/apache/docker-entrypoint.sh new file mode 100755 index 0000000..40aa8a1 --- /dev/null +++ b/8.1/apache/docker-entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -e + +if [ ! -e '/var/www/html/version.php' ]; then + tar cf - --one-file-system -C /usr/src/owncloud . | tar xf - + chown -R www-data /var/www/html +fi + +exec "$@" diff --git a/8.1/fpm/Dockerfile b/8.1/fpm/Dockerfile new file mode 100644 index 0000000..b2943bf --- /dev/null +++ b/8.1/fpm/Dockerfile @@ -0,0 +1,52 @@ +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/* + +#gpg key from https://owncloud.org/owncloud.asc +RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys E3036906AD9F30807351FAC32D5D5E97F6978A26 + +# https://doc.owncloud.org/server/8.1/admin_manual/installation/source_installation.html#prerequisites +RUN docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ + && docker-php-ext-install gd intl mbstring mcrypt 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 pecl install APCu-beta redis memcached \ + && docker-php-ext-enable apcu redis memcached + +ENV OWNCLOUD_VERSION 8.1.3 +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" \ + && gpg --verify owncloud.tar.bz2.asc \ + && tar -xjf owncloud.tar.bz2 -C /usr/src/ \ + && rm owncloud.tar.bz2 owncloud.tar.bz2.asc + +COPY docker-entrypoint.sh /entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] diff --git a/8.1/fpm/docker-entrypoint.sh b/8.1/fpm/docker-entrypoint.sh new file mode 100755 index 0000000..40aa8a1 --- /dev/null +++ b/8.1/fpm/docker-entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -e + +if [ ! -e '/var/www/html/version.php' ]; then + tar cf - --one-file-system -C /usr/src/owncloud . | tar xf - + chown -R www-data /var/www/html +fi + +exec "$@" diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index 4788990..1b7681b 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -17,18 +17,27 @@ url='git://github.com/docker-library/owncloud' echo '# maintainer: InfoSiftr (@infosiftr)' for version in "${versions[@]}"; do - commit="$(cd "$version" && git log -1 --format='format:%H' -- Dockerfile $(awk 'toupper($1) == "COPY" { for (i = 2; i < NF; i++) { print $i } }' Dockerfile))" - fullVersion="$(grep -m1 'ENV OWNCLOUD_VERSION ' "$version/Dockerfile" | cut -d' ' -f3)" - - versionAliases=() - while [ "$fullVersion" != "$version" -a "${fullVersion%[.-]*}" != "$fullVersion" ]; do - versionAliases+=( $fullVersion ) - fullVersion="${fullVersion%[.-]*}" - done - versionAliases+=( $version ${aliases[$version]} ) - - echo - for va in "${versionAliases[@]}"; do - echo "$va: ${url}@${commit} $version" + for variant in apache fpm; do + commit="$(cd "$version/$variant" && git log -1 --format='format:%H' -- Dockerfile $(awk 'toupper($1) == "COPY" { for (i = 2; i < NF; i++) { print $i } }' Dockerfile))" + fullVersion="$(grep -m1 'ENV OWNCLOUD_VERSION ' "$version/$variant/Dockerfile" | cut -d' ' -f3)" + + versionAliases=() + while [ "$fullVersion" != "$version" -a "${fullVersion%[.-]*}" != "$fullVersion" ]; do + versionAliases+=( $fullVersion ) + fullVersion="${fullVersion%[.-]*}" + done + versionAliases+=( $version ${aliases[$version]} ) + + echo + for va in "${versionAliases[@]}"; do + echo "$va-$variant: ${url}@${commit} $version/$variant" + if [ "${variant}" == "apache" ]; then + echo "$va: ${url}@${commit} $version/$variant" + else + if [ "$va" == "latest" ]; then + echo "$variant: ${url}@${commit} $version/$variant" + fi + fi + done done done diff --git a/update.sh b/update.sh index 086459e..42656cc 100755 --- a/update.sh +++ b/update.sh @@ -13,9 +13,10 @@ versions=( "${versions[@]%/}" ) travisEnv= for version in "${versions[@]}"; do latest=$(curl -sSL 'https://owncloud.org/changelog/' |tac|tac| grep -o -m 1 "\(Version\|Release\) ${version}.[[:digit:]]\+" | sed -rn 's/(Version|Release) (.*)/\2/p') - sed -ri -e 's/^(ENV OWNCLOUD_VERSION) .*/\1 '"$latest"'/' "$version/Dockerfile" - - travisEnv='\n - VERSION='"$version$travisEnv" + for variant in apache fpm; do + sed -ri -e 's/^(ENV OWNCLOUD_VERSION) .*/\1 '"$latest"'/' "$version/$variant/Dockerfile" + travisEnv='\n - VERSION='"$version"' VARIANT='"$variant$travisEnv" + done done travis="$(awk -v 'RS=\n\n' '$1 == "env:" { $0 = "env:'"$travisEnv"'" } { printf "%s%s", $0, RS }' .travis.yml)"