|
|
- # DO NOT EDIT: created by update.sh from Dockerfile-alpine.template
- FROM php:7.4-fpm-alpine3.12
-
- # entrypoint.sh and cron.sh dependencies
- RUN set -ex; \
- \
- apk add --no-cache \
- rsync \
- ; \
- \
- rm /var/spool/cron/crontabs/root; \
- echo '*/5 * * * * 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/stable/admin_manual/installation/source_installation.html
- RUN set -ex; \
- \
- apk add --no-cache --virtual .build-deps \
- $PHPIZE_DEPS \
- autoconf \
- freetype-dev \
- icu-dev \
- libevent-dev \
- libjpeg-turbo-dev \
- libmcrypt-dev \
- libpng-dev \
- libmemcached-dev \
- libxml2-dev \
- libzip-dev \
- openldap-dev \
- pcre-dev \
- postgresql-dev \
- imagemagick-dev \
- libwebp-dev \
- gmp-dev \
- ; \
- \
- docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp; \
- docker-php-ext-configure ldap; \
- docker-php-ext-install -j "$(nproc)" \
- bcmath \
- exif \
- gd \
- intl \
- ldap \
- opcache \
- pcntl \
- pdo_mysql \
- pdo_pgsql \
- zip \
- gmp \
- ; \
- \
- # pecl will claim success even if one install fails, so we need to perform each install separately
- pecl install APCu-5.1.19; \
- pecl install memcached-3.1.5; \
- pecl install redis-5.3.2; \
- pecl install imagick-3.4.4; \
- \
- docker-php-ext-enable \
- apcu \
- memcached \
- redis \
- imagick \
- ; \
- \
- 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.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; \
- \
- echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
- \
- echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
- \
- mkdir /var/www/data; \
- chown -R www-data:root /var/www; \
- chmod -R g=u /var/www
-
- VOLUME /var/www/html
-
-
- ENV NEXTCLOUD_VERSION 20.0.1
-
- 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 --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \
- gpg --batch --verify nextcloud.tar.bz2.asc nextcloud.tar.bz2; \
- tar -xjf nextcloud.tar.bz2 -C /usr/src/; \
- gpgconf --kill all; \
- rm nextcloud.tar.bz2.asc nextcloud.tar.bz2; \
- rm -rf "$GNUPGHOME" /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 upgrade.exclude /
- COPY config/* /usr/src/nextcloud/config/
-
- ENTRYPOINT ["/entrypoint.sh"]
- CMD ["php-fpm"]
|