18db7e679f
The `*/*/Dockerfile` are created from `Docker*template` by the update.sh script. We add a comment at the beginning of the file with information to find their origin. We also make them readonly to remind people who would like to improve these files that they are not meant to be modified.
118 lines
3.4 KiB
Docker
118 lines
3.4 KiB
Docker
# DO NOT EDIT: created by update.sh from Dockerfile-alpine.template
|
|
FROM php:7.1-fpm-alpine
|
|
|
|
# entrypoint.sh and cron.sh dependencies
|
|
RUN set -ex; \
|
|
\
|
|
apk add --no-cache \
|
|
rsync \
|
|
; \
|
|
\
|
|
rm /var/spool/cron/crontabs/root; \
|
|
echo '*/15 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data
|
|
|
|
# install the PHP extensions we need
|
|
# see https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html
|
|
RUN set -ex; \
|
|
\
|
|
apk add --no-cache --virtual .build-deps \
|
|
alpine-sdk \
|
|
autoconf \
|
|
freetype-dev \
|
|
icu-dev \
|
|
libjpeg-turbo-dev \
|
|
libmcrypt-dev \
|
|
libpng-dev \
|
|
libmemcached-dev \
|
|
libxml2-dev \
|
|
openldap-dev \
|
|
pcre-dev \
|
|
postgresql-dev \
|
|
; \
|
|
\
|
|
docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr; \
|
|
docker-php-ext-configure ldap; \
|
|
docker-php-ext-install \
|
|
exif \
|
|
gd \
|
|
intl \
|
|
ldap \
|
|
mbstring \
|
|
mcrypt \
|
|
mysqli \
|
|
opcache \
|
|
pcntl \
|
|
pdo_mysql \
|
|
pdo_pgsql \
|
|
pgsql \
|
|
zip \
|
|
; \
|
|
pecl install \
|
|
APCu-5.1.11 \
|
|
memcached-3.0.4 \
|
|
redis-3.1.6 \
|
|
; \
|
|
docker-php-ext-enable \
|
|
apcu \
|
|
memcached \
|
|
redis \
|
|
; \
|
|
\
|
|
runDeps="$( \
|
|
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
|
|
| tr ',' '\n' \
|
|
| sort -u \
|
|
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
|
|
)"; \
|
|
apk add --virtual .nextcloud-phpext-rundeps $runDeps; \
|
|
apk del .build-deps
|
|
|
|
# set recommended PHP.ini settings
|
|
# see https://docs.nextcloud.com/server/12/admin_manual/configuration_server/server_tuning.html#enable-php-opcache
|
|
RUN { \
|
|
echo 'opcache.enable=1'; \
|
|
echo 'opcache.enable_cli=1'; \
|
|
echo 'opcache.interned_strings_buffer=8'; \
|
|
echo 'opcache.max_accelerated_files=10000'; \
|
|
echo 'opcache.memory_consumption=128'; \
|
|
echo 'opcache.save_comments=1'; \
|
|
echo 'opcache.revalidate_freq=1'; \
|
|
} > /usr/local/etc/php/conf.d/opcache-recommended.ini; \
|
|
\
|
|
chown -R www-data:root /var/www; \
|
|
chmod -R g=u /var/www
|
|
|
|
VOLUME /var/www/html
|
|
|
|
|
|
ENV NEXTCLOUD_VERSION 11.0.8
|
|
|
|
RUN set -ex; \
|
|
apk add --no-cache --virtual .fetch-deps \
|
|
bzip2 \
|
|
gnupg \
|
|
; \
|
|
\
|
|
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; \
|
|
mkdir -p /usr/src/nextcloud/data; \
|
|
mkdir -p /usr/src/nextcloud/custom_apps; \
|
|
chmod +x /usr/src/nextcloud/occ; \
|
|
apk del .fetch-deps
|
|
|
|
COPY *.sh /
|
|
COPY config/* /usr/src/nextcloud/config/
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
CMD ["php-fpm"]
|