Skip to content
This repository was archived by the owner on Jan 3, 2019. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions 8.0/apache/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,17 @@ RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libicu-dev \
libjpeg-dev \
libldap2-dev \
libmcrypt-dev \
libpng12-dev \
libpq-dev \
libxml2-dev \
libldap2-dev \
&& rm -rf /var/lib/apt/lists/*

# 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-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install gd exif intl mbstring mcrypt mysql opcache pdo_mysql pdo_pgsql pgsql zip ldap

&& docker-php-ext-install exif gd intl ldap 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
Expand All @@ -29,13 +28,13 @@ RUN { \
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 pecl install APCu-4.0.10 \
RUN set -ex \
&& pecl install APCu-4.0.10 \
&& docker-php-ext-enable apcu

RUN a2enmod rewrite

ENV OWNCLOUD_VERSION 8.0.13
VOLUME /var/www/html

Expand Down
7 changes: 4 additions & 3 deletions 8.0/fpm/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libicu-dev \
libjpeg-dev \
libldap2-dev \
libmcrypt-dev \
libpng12-dev \
libpq-dev \
libxml2-dev \
libldap2-dev \
&& rm -rf /var/lib/apt/lists/*

# 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-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install gd exif intl mbstring mcrypt mysql opcache pdo_mysql pdo_pgsql pgsql zip ldap
&& docker-php-ext-install exif gd intl ldap 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
Expand All @@ -30,7 +30,8 @@ RUN { \
} > /usr/local/etc/php/conf.d/opcache-recommended.ini

# PECL extensions
RUN pecl install APCu-4.0.10 \
RUN set -ex \
&& pecl install APCu-4.0.10 \
&& docker-php-ext-enable apcu

ENV OWNCLOUD_VERSION 8.0.13
Expand Down
10 changes: 4 additions & 6 deletions 8.1/apache/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,18 @@ RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libicu-dev \
libjpeg-dev \
libldap2-dev \
libmcrypt-dev \
libmemcached-dev \
libpng12-dev \
libpq-dev \
libxml2-dev \
libldap2-dev \
&& rm -rf /var/lib/apt/lists/*

# 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-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install gd exif intl mbstring mcrypt mysql opcache pdo_mysql pdo_pgsql pgsql zip ldap

&& docker-php-ext-install exif gd intl ldap 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
Expand All @@ -30,15 +29,14 @@ RUN { \
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
&& docker-php-ext-enable apcu memcached redis

ENV OWNCLOUD_VERSION 8.1.8
VOLUME /var/www/html
Expand Down
7 changes: 3 additions & 4 deletions 8.1/fpm/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,18 @@ RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libicu-dev \
libjpeg-dev \
libldap2-dev \
libmcrypt-dev \
libmemcached-dev \
libpng12-dev \
libpq-dev \
libxml2-dev \
libldap2-dev \
&& rm -rf /var/lib/apt/lists/*

# 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-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install gd exif intl mbstring mcrypt mysql opcache pdo_mysql pdo_pgsql pgsql zip ldap

&& docker-php-ext-install exif gd intl ldap 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
Expand All @@ -36,7 +35,7 @@ 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
&& docker-php-ext-enable apcu memcached redis

ENV OWNCLOUD_VERSION 8.1.8
VOLUME /var/www/html
Expand Down
10 changes: 4 additions & 6 deletions 8.2/apache/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,18 @@ RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libicu-dev \
libjpeg-dev \
libldap2-dev \
libmcrypt-dev \
libmemcached-dev \
libpng12-dev \
libpq-dev \
libxml2-dev \
libldap2-dev \
&& rm -rf /var/lib/apt/lists/*

# 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-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install gd exif intl mbstring mcrypt mysql opcache pdo_mysql pdo_pgsql pgsql zip ldap

&& docker-php-ext-install exif gd intl ldap 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
Expand All @@ -30,15 +29,14 @@ RUN { \
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
&& docker-php-ext-enable apcu memcached redis

ENV OWNCLOUD_VERSION 8.2.6
VOLUME /var/www/html
Expand Down
7 changes: 3 additions & 4 deletions 8.2/fpm/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,18 @@ RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libicu-dev \
libjpeg-dev \
libldap2-dev \
libmcrypt-dev \
libmemcached-dev \
libpng12-dev \
libpq-dev \
libxml2-dev \
libldap2-dev \
&& rm -rf /var/lib/apt/lists/*

# 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-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install gd exif intl mbstring mcrypt mysql opcache pdo_mysql pdo_pgsql pgsql zip ldap

&& docker-php-ext-install exif gd intl ldap 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
Expand All @@ -36,7 +35,7 @@ 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
&& docker-php-ext-enable apcu memcached redis

ENV OWNCLOUD_VERSION 8.2.6
VOLUME /var/www/html
Expand Down
10 changes: 4 additions & 6 deletions 9.0/apache/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,18 @@ RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libicu-dev \
libjpeg-dev \
libldap2-dev \
libmcrypt-dev \
libmemcached-dev \
libpng12-dev \
libpq-dev \
libxml2-dev \
libldap2-dev \
&& rm -rf /var/lib/apt/lists/*

# 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-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install gd exif intl mbstring mcrypt mysql opcache pdo_mysql pdo_pgsql pgsql zip ldap

&& docker-php-ext-install exif gd intl ldap 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
Expand All @@ -30,15 +29,14 @@ RUN { \
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
&& docker-php-ext-enable apcu memcached redis

ENV OWNCLOUD_VERSION 9.0.3
VOLUME /var/www/html
Expand Down
7 changes: 3 additions & 4 deletions 9.0/fpm/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,18 @@ RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libicu-dev \
libjpeg-dev \
libldap2-dev \
libmcrypt-dev \
libmemcached-dev \
libpng12-dev \
libpq-dev \
libxml2-dev \
libldap2-dev \
&& rm -rf /var/lib/apt/lists/*

# 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-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install gd exif intl mbstring mcrypt mysql opcache pdo_mysql pdo_pgsql pgsql zip ldap

&& docker-php-ext-install exif gd intl ldap 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
Expand All @@ -36,7 +35,7 @@ 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
&& docker-php-ext-enable apcu memcached redis

ENV OWNCLOUD_VERSION 9.0.3
VOLUME /var/www/html
Expand Down
59 changes: 59 additions & 0 deletions Dockerfile.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
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://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-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install exif gd intl ldap 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
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 memcached redis

ENV OWNCLOUD_VERSION %%VERSION%%
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

COPY docker-entrypoint.sh /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]
CMD ["%%CMD%%"]
32 changes: 30 additions & 2 deletions update.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
#!/bin/bash
set -e

declare -A unsupportedModules=(
[8.0]='memcached redis'
)
declare -A cmd=(
[apache]='apache2-foreground'
[fpm]='php-fpm'
)

cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
#Supported Versions found from Production Channel https://owncloud.org/release-channels/
versions=( "$@" )
Expand All @@ -9,12 +17,32 @@ if [ ${#versions[@]} -eq 0 ]; then
fi
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')

for variant in apache fpm; do
sed -ri -e 's/^(ENV OWNCLOUD_VERSION) .*/\1 '"$latest"'/' "$version/$variant/Dockerfile"
cp Dockerfile.template "$version/$variant/Dockerfile"

sed -ri -e '
s/%%VARIANT%%/'"$variant"'/;
s/%%VERSION%%/'"$latest"'/;
s/%%CMD%%/'"${cmd[$variant]}"'/;
' "$version/$variant/Dockerfile"

# TODO remove hacky unsupportedModules list when 8.0 is eol
for mod in ${unsupportedModules[$version]}; do
sed -ri -e '
/pecl install '"$mod"'/Id;
/lib'"$mod"'/Id;
s/(docker-php-ext-enable.*) '"$mod"'/\1/;
' "$version/$variant/Dockerfile"
done

if [ "$variant" = 'fpm' ]; then
sed -ri -e '/a2enmod/d' "$version/$variant/Dockerfile"
fi

travisEnv='\n - VERSION='"$version"' VARIANT='"$variant$travisEnv"
done
done
Expand Down