#!BuildTag: nextcloud-apache FROM opensuse/bci/php-apache:latest RUN zypper -n install --no-recommends nextcloud \ php8-APCu \ php8-bcmath \ php8-exif \ php8-gmp \ php8-imagick \ php8-pcntl \ php8-pgsql \ php8-redis \ php8-sqlite \ php8-sodium \ php8-sysvsem \ sqlite3 \ rsync; ENV NEXTCLOUD_INSTALL_DIR /srv/www/htdocs/nextcloud ENV NEXTCLOUD_IMAGE_DIR /var/www/nextcloud # move the installed nextcloud, required by entrypoint.sh RUN mkdir -p $NEXTCLOUD_IMAGE_DIR RUN mv $NEXTCLOUD_INSTALL_DIR /var/www/ ENV PHP_MEMORY_LIMIT 512M ENV PHP_UPLOAD_LIMIT 512M # set recommended PHP.ini settings # see https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#enable-php-opcache RUN { \ echo 'opcache.enable=1'; \ echo 'opcache.enable_cli=1'; \ echo 'opcache.interned_strings_buffer=32'; \ echo 'opcache.max_accelerated_files=10000'; \ echo 'opcache.memory_consumption=128'; \ echo 'opcache.save_comments=1'; \ echo 'opcache.revalidate_freq=60'; \ echo 'opcache.jit=1255'; \ echo 'opcache.jit_buffer_size=128M'; \ } > "${PHP_INI_DIR}/conf.d/opcache-recommended.ini"; \ \ echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \ \ { \ echo "memory_limit=${PHP_MEMORY_LIMIT}"; \ echo "upload_max_filesize=${PHP_UPLOAD_LIMIT}"; \ echo "post_max_size=${PHP_UPLOAD_LIMIT}"; \ } > "${PHP_INI_DIR}/conf.d/nextcloud.ini"; \ \ mkdir -p /docker-entrypoint-hooks.d/pre-installation \ /docker-entrypoint-hooks.d/post-installation \ /docker-entrypoint-hooks.d/pre-upgrade \ /docker-entrypoint-hooks.d/post-upgrade \ /docker-entrypoint-hooks.d/before-starting; # add apache config RUN a2enmod headers; \ a2enmod rewrite; \ a2enmod remoteip; \ { \ echo 'RemoteIPHeader X-Real-IP'; \ echo 'RemoteIPInternalProxy 10.0.0.0/8'; \ echo 'RemoteIPInternalProxy 172.16.0.0/12'; \ echo 'RemoteIPInternalProxy 192.168.0.0/16'; \ } > /etc/apache2/conf.d/remoteip.conf; ENV APACHE_BODY_LIMIT 1073741824 RUN { \ echo "LimitRequestBody ${APACHE_BODY_LIMIT}"; \ } > /etc/apache2/conf.d/apache-limits.conf; COPY apache-nextcloud.conf /etc/apache2/vhosts.d/ # add nextcloud config COPY autoconfig.php \ apache-pretty-urls.config.php \ apcu.config.php \ apps.config.php \ redis.config.php \ reverse-proxy.config.php \ s3.config.php \ smtp.config.php \ swift.config.php \ upgrade-disable-web.config.php \ $NEXTCLOUD_IMAGE_DIR/config/ COPY entrypoint.sh upgrade.exclude / RUN chmod +x /entrypoint.sh VOLUME $NEXTCLOUD_INSTALL_DIR WORKDIR $NEXTCLOUD_INSTALL_DIR ENTRYPOINT ["/entrypoint.sh"] CMD ["apache2-foreground"]