diff --git a/.config/redis.config.php b/.config/redis.config.php index 2069812f..c8fcbe72 100644 --- a/.config/redis.config.php +++ b/.config/redis.config.php @@ -13,6 +13,8 @@ if (getenv('REDIS_HOST')) { $CONFIG['redis']['port'] = (int) getenv('REDIS_HOST_PORT'); } elseif (getenv('REDIS_HOST')[0] != '/') { $CONFIG['redis']['port'] = 6379; + } elseif (getenv('REDIS_HOST')[0] == '/') { + $CONFIG['redis']['port'] = 0; } if (getenv('REDIS_HOST_USER') !== false) { diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 5a3fc37e..bbc4a691 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,10 +1,22 @@ contact_links: - - name: 🐛 Nextcloud issue - url: https://github.com/nextcloud/server/issues/new/choose - about: Bug reports and feature requests for Nextcloud - - name: 🐳 Docker Support and Help - url: https://forums.docker.com/ - about: Configuration, installation, networking and other questions - - name: ❓ Nextcloud Support and Help + - name: ❓ Ask a question url: https://help.nextcloud.com/ - about: Configuration, webserver/proxy or performance issues and other questions + about: Ask a question, get assistance or start a discussion regarding Nextcloud and/or this image + - name: Documentation - Nextcloud Server + url: https://docs.nextcloud.com/ + about: Official documentation for Nextcloud Server + - name: Documentation - Nextcloud Docker Image + url: https://github.com/nextcloud/docker/blob/master/README.md + about: Official documentation for this image + - name: 🐳 Documentation - Docker + url: https://docs.docker.com/ + about: Official documentation for Docker (installing, configuring, troubleshooting) + - name: 🐳 Docker Forum + url: https://forums.docker.com/ + about: Ask a question, get assistance or start a discussion regarding Docker + - name: 🐛 Bug Report - Nextcloud Server + url: https://github.com/nextcloud/server/issues/new/choose + about: Report a bug in Nextcloud Server + - name: Enhancement Idea - Nextcloud Server + url: https://github.com/nextcloud/server/issues/new/choose + about: Suggest an enhancement idea for Nextcloud Server diff --git a/29/apache/Dockerfile b/29/apache/Dockerfile index 4aec7fe7..6705b196 100644 --- a/29/apache/Dockerfile +++ b/29/apache/Dockerfile @@ -1,6 +1,9 @@ # DO NOT EDIT: created by update.sh from Dockerfile-debian.template FROM php:8.2-apache-bookworm +# Define the commit hash for imagick as a variable +ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b + # entrypoint.sh and cron.sh dependencies RUN set -ex; \ \ @@ -65,13 +68,26 @@ RUN set -ex; \ zip \ ; \ \ +# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet. +# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround. + curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \ + tar -xzf imagick.tar.gz -C /tmp; \ + rm imagick.tar.gz; \ + cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + cd; \ + rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + \ # pecl will claim success even if one install fails, so we need to perform each install separately pecl install APCu-5.1.24; \ pecl install igbinary-3.2.16; \ - pecl install imagick-3.7.0; \ pecl install memcached-3.3.0 \ --configureoptions 'enable-memcached-igbinary="yes"'; \ - pecl install redis-6.1.0 \ + pecl install redis-6.2.0 \ --configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \ \ docker-php-ext-enable \ @@ -150,7 +166,7 @@ RUN { \ } > /etc/apache2/conf-available/apache-limits.conf; \ a2enconf apache-limits -ENV NEXTCLOUD_VERSION 29.0.12 +ENV NEXTCLOUD_VERSION 29.0.14 RUN set -ex; \ fetchDeps=" \ @@ -160,8 +176,8 @@ RUN set -ex; \ apt-get update; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.12.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.12.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.14.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.14.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/29/fpm-alpine/Dockerfile b/29/fpm-alpine/Dockerfile index 7eec3144..d0058db8 100644 --- a/29/fpm-alpine/Dockerfile +++ b/29/fpm-alpine/Dockerfile @@ -1,6 +1,9 @@ # DO NOT EDIT: created by update.sh from Dockerfile-alpine.template FROM php:8.2-fpm-alpine3.21 +# Define the commit hash for imagick as a variable +ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b + # entrypoint.sh and cron.sh dependencies RUN set -ex; \ \ @@ -62,13 +65,26 @@ RUN set -ex; \ zip \ ; \ \ +# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet. +# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround. + curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \ + tar -xzf imagick.tar.gz -C /tmp; \ + rm imagick.tar.gz; \ + cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + cd; \ + rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + \ # pecl will claim success even if one install fails, so we need to perform each install separately pecl install APCu-5.1.24; \ pecl install igbinary-3.2.16; \ - pecl install imagick-3.7.0; \ pecl install memcached-3.3.0 \ --configureoptions 'enable-memcached-igbinary="yes"'; \ - pecl install redis-6.1.0 \ + pecl install redis-6.2.0 \ --configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \ \ docker-php-ext-enable \ @@ -130,7 +146,7 @@ RUN { \ VOLUME /var/www/html -ENV NEXTCLOUD_VERSION 29.0.12 +ENV NEXTCLOUD_VERSION 29.0.14 RUN set -ex; \ apk add --no-cache --virtual .fetch-deps \ @@ -138,8 +154,8 @@ RUN set -ex; \ gnupg \ ; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.12.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.12.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.14.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.14.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/29/fpm/Dockerfile b/29/fpm/Dockerfile index 819fd601..2833cad0 100644 --- a/29/fpm/Dockerfile +++ b/29/fpm/Dockerfile @@ -1,6 +1,9 @@ # DO NOT EDIT: created by update.sh from Dockerfile-debian.template FROM php:8.2-fpm-bookworm +# Define the commit hash for imagick as a variable +ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b + # entrypoint.sh and cron.sh dependencies RUN set -ex; \ \ @@ -65,13 +68,26 @@ RUN set -ex; \ zip \ ; \ \ +# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet. +# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround. + curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \ + tar -xzf imagick.tar.gz -C /tmp; \ + rm imagick.tar.gz; \ + cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + cd; \ + rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + \ # pecl will claim success even if one install fails, so we need to perform each install separately pecl install APCu-5.1.24; \ pecl install igbinary-3.2.16; \ - pecl install imagick-3.7.0; \ pecl install memcached-3.3.0 \ --configureoptions 'enable-memcached-igbinary="yes"'; \ - pecl install redis-6.1.0 \ + pecl install redis-6.2.0 \ --configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \ \ docker-php-ext-enable \ @@ -135,7 +151,7 @@ RUN { \ VOLUME /var/www/html -ENV NEXTCLOUD_VERSION 29.0.12 +ENV NEXTCLOUD_VERSION 29.0.14 RUN set -ex; \ fetchDeps=" \ @@ -145,8 +161,8 @@ RUN set -ex; \ apt-get update; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.12.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.12.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-29.0.14.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-29.0.14.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/30/apache/Dockerfile b/30/apache/Dockerfile index 3bb31915..6034a23d 100644 --- a/30/apache/Dockerfile +++ b/30/apache/Dockerfile @@ -1,6 +1,9 @@ # DO NOT EDIT: created by update.sh from Dockerfile-debian.template FROM php:8.2-apache-bookworm +# Define the commit hash for imagick as a variable +ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b + # entrypoint.sh and cron.sh dependencies RUN set -ex; \ \ @@ -65,13 +68,26 @@ RUN set -ex; \ zip \ ; \ \ +# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet. +# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround. + curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \ + tar -xzf imagick.tar.gz -C /tmp; \ + rm imagick.tar.gz; \ + cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + cd; \ + rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + \ # pecl will claim success even if one install fails, so we need to perform each install separately pecl install APCu-5.1.24; \ pecl install igbinary-3.2.16; \ - pecl install imagick-3.7.0; \ pecl install memcached-3.3.0 \ --configureoptions 'enable-memcached-igbinary="yes"'; \ - pecl install redis-6.1.0 \ + pecl install redis-6.2.0 \ --configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \ \ docker-php-ext-enable \ @@ -150,7 +166,7 @@ RUN { \ } > /etc/apache2/conf-available/apache-limits.conf; \ a2enconf apache-limits -ENV NEXTCLOUD_VERSION 30.0.6 +ENV NEXTCLOUD_VERSION 30.0.8 RUN set -ex; \ fetchDeps=" \ @@ -160,8 +176,8 @@ RUN set -ex; \ apt-get update; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.6.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.6.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.8.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.8.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/30/fpm-alpine/Dockerfile b/30/fpm-alpine/Dockerfile index 7ad94ea2..0a88a77e 100644 --- a/30/fpm-alpine/Dockerfile +++ b/30/fpm-alpine/Dockerfile @@ -1,6 +1,9 @@ # DO NOT EDIT: created by update.sh from Dockerfile-alpine.template FROM php:8.2-fpm-alpine3.21 +# Define the commit hash for imagick as a variable +ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b + # entrypoint.sh and cron.sh dependencies RUN set -ex; \ \ @@ -62,13 +65,26 @@ RUN set -ex; \ zip \ ; \ \ +# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet. +# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround. + curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \ + tar -xzf imagick.tar.gz -C /tmp; \ + rm imagick.tar.gz; \ + cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + cd; \ + rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + \ # pecl will claim success even if one install fails, so we need to perform each install separately pecl install APCu-5.1.24; \ pecl install igbinary-3.2.16; \ - pecl install imagick-3.7.0; \ pecl install memcached-3.3.0 \ --configureoptions 'enable-memcached-igbinary="yes"'; \ - pecl install redis-6.1.0 \ + pecl install redis-6.2.0 \ --configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \ \ docker-php-ext-enable \ @@ -130,7 +146,7 @@ RUN { \ VOLUME /var/www/html -ENV NEXTCLOUD_VERSION 30.0.6 +ENV NEXTCLOUD_VERSION 30.0.8 RUN set -ex; \ apk add --no-cache --virtual .fetch-deps \ @@ -138,8 +154,8 @@ RUN set -ex; \ gnupg \ ; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.6.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.6.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.8.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.8.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/30/fpm/Dockerfile b/30/fpm/Dockerfile index c904d52e..163df8c7 100644 --- a/30/fpm/Dockerfile +++ b/30/fpm/Dockerfile @@ -1,6 +1,9 @@ # DO NOT EDIT: created by update.sh from Dockerfile-debian.template FROM php:8.2-fpm-bookworm +# Define the commit hash for imagick as a variable +ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b + # entrypoint.sh and cron.sh dependencies RUN set -ex; \ \ @@ -65,13 +68,26 @@ RUN set -ex; \ zip \ ; \ \ +# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet. +# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround. + curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \ + tar -xzf imagick.tar.gz -C /tmp; \ + rm imagick.tar.gz; \ + cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + cd; \ + rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + \ # pecl will claim success even if one install fails, so we need to perform each install separately pecl install APCu-5.1.24; \ pecl install igbinary-3.2.16; \ - pecl install imagick-3.7.0; \ pecl install memcached-3.3.0 \ --configureoptions 'enable-memcached-igbinary="yes"'; \ - pecl install redis-6.1.0 \ + pecl install redis-6.2.0 \ --configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \ \ docker-php-ext-enable \ @@ -135,7 +151,7 @@ RUN { \ VOLUME /var/www/html -ENV NEXTCLOUD_VERSION 30.0.6 +ENV NEXTCLOUD_VERSION 30.0.8 RUN set -ex; \ fetchDeps=" \ @@ -145,8 +161,8 @@ RUN set -ex; \ apt-get update; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.6.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.6.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.8.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.8.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/31/apache/Dockerfile b/31/apache/Dockerfile index aeab9d9b..bb799ffe 100644 --- a/31/apache/Dockerfile +++ b/31/apache/Dockerfile @@ -1,5 +1,8 @@ # DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:8.2-apache-bookworm +FROM php:8.3-apache-bookworm + +# Define the commit hash for imagick as a variable +ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b # entrypoint.sh and cron.sh dependencies RUN set -ex; \ @@ -65,13 +68,26 @@ RUN set -ex; \ zip \ ; \ \ +# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet. +# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround. + curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \ + tar -xzf imagick.tar.gz -C /tmp; \ + rm imagick.tar.gz; \ + cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + cd; \ + rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + \ # pecl will claim success even if one install fails, so we need to perform each install separately pecl install APCu-5.1.24; \ pecl install igbinary-3.2.16; \ - pecl install imagick-3.7.0; \ pecl install memcached-3.3.0 \ --configureoptions 'enable-memcached-igbinary="yes"'; \ - pecl install redis-6.1.0 \ + pecl install redis-6.2.0 \ --configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \ \ docker-php-ext-enable \ @@ -150,7 +166,7 @@ RUN { \ } > /etc/apache2/conf-available/apache-limits.conf; \ a2enconf apache-limits -ENV NEXTCLOUD_VERSION 31.0.0 +ENV NEXTCLOUD_VERSION 31.0.2 RUN set -ex; \ fetchDeps=" \ @@ -160,8 +176,8 @@ RUN set -ex; \ apt-get update; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-31.0.0.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-31.0.0.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-31.0.2.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-31.0.2.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/31/fpm-alpine/Dockerfile b/31/fpm-alpine/Dockerfile index 9972b489..7b9a37a1 100644 --- a/31/fpm-alpine/Dockerfile +++ b/31/fpm-alpine/Dockerfile @@ -1,5 +1,8 @@ # DO NOT EDIT: created by update.sh from Dockerfile-alpine.template -FROM php:8.2-fpm-alpine3.21 +FROM php:8.3-fpm-alpine3.21 + +# Define the commit hash for imagick as a variable +ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b # entrypoint.sh and cron.sh dependencies RUN set -ex; \ @@ -62,13 +65,26 @@ RUN set -ex; \ zip \ ; \ \ +# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet. +# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround. + curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \ + tar -xzf imagick.tar.gz -C /tmp; \ + rm imagick.tar.gz; \ + cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + cd; \ + rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + \ # pecl will claim success even if one install fails, so we need to perform each install separately pecl install APCu-5.1.24; \ pecl install igbinary-3.2.16; \ - pecl install imagick-3.7.0; \ pecl install memcached-3.3.0 \ --configureoptions 'enable-memcached-igbinary="yes"'; \ - pecl install redis-6.1.0 \ + pecl install redis-6.2.0 \ --configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \ \ docker-php-ext-enable \ @@ -130,7 +146,7 @@ RUN { \ VOLUME /var/www/html -ENV NEXTCLOUD_VERSION 31.0.0 +ENV NEXTCLOUD_VERSION 31.0.2 RUN set -ex; \ apk add --no-cache --virtual .fetch-deps \ @@ -138,8 +154,8 @@ RUN set -ex; \ gnupg \ ; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-31.0.0.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-31.0.0.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-31.0.2.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-31.0.2.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/31/fpm/Dockerfile b/31/fpm/Dockerfile index 29a53311..4579215f 100644 --- a/31/fpm/Dockerfile +++ b/31/fpm/Dockerfile @@ -1,5 +1,8 @@ # DO NOT EDIT: created by update.sh from Dockerfile-debian.template -FROM php:8.2-fpm-bookworm +FROM php:8.3-fpm-bookworm + +# Define the commit hash for imagick as a variable +ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b # entrypoint.sh and cron.sh dependencies RUN set -ex; \ @@ -65,13 +68,26 @@ RUN set -ex; \ zip \ ; \ \ +# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet. +# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround. + curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \ + tar -xzf imagick.tar.gz -C /tmp; \ + rm imagick.tar.gz; \ + cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + cd; \ + rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + \ # pecl will claim success even if one install fails, so we need to perform each install separately pecl install APCu-5.1.24; \ pecl install igbinary-3.2.16; \ - pecl install imagick-3.7.0; \ pecl install memcached-3.3.0 \ --configureoptions 'enable-memcached-igbinary="yes"'; \ - pecl install redis-6.1.0 \ + pecl install redis-6.2.0 \ --configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \ \ docker-php-ext-enable \ @@ -135,7 +151,7 @@ RUN { \ VOLUME /var/www/html -ENV NEXTCLOUD_VERSION 31.0.0 +ENV NEXTCLOUD_VERSION 31.0.2 RUN set -ex; \ fetchDeps=" \ @@ -145,8 +161,8 @@ RUN set -ex; \ apt-get update; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-31.0.0.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-31.0.0.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-31.0.2.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-31.0.2.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index cf6af0ff..2295bddf 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -1,5 +1,8 @@ FROM php:%%PHP_VERSION%%-%%VARIANT%%%%ALPINE_VERSION%% +# Define the commit hash for imagick as a variable +ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b + # entrypoint.sh and cron.sh dependencies RUN set -ex; \ \ @@ -61,10 +64,23 @@ RUN set -ex; \ zip \ ; \ \ +# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet. +# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround. + curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \ + tar -xzf imagick.tar.gz -C /tmp; \ + rm imagick.tar.gz; \ + cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + cd; \ + rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + \ # pecl will claim success even if one install fails, so we need to perform each install separately pecl install APCu-%%APCU_VERSION%%; \ pecl install igbinary-%%IGBINARY_VERSION%%; \ - pecl install imagick-%%IMAGICK_VERSION%%; \ pecl install memcached-%%MEMCACHED_VERSION%% \ --configureoptions 'enable-memcached-igbinary="yes"'; \ pecl install redis-%%REDIS_VERSION%% \ diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index cadae18a..8734caa9 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -1,5 +1,8 @@ FROM php:%%PHP_VERSION%%-%%VARIANT%%-%%DEBIAN_VERSION%% +# Define the commit hash for imagick as a variable +ENV IMAGICK_COMMIT_HASH d7d3c24af1b4f599897408f1714600b69a56473b + # entrypoint.sh and cron.sh dependencies RUN set -ex; \ \ @@ -64,10 +67,23 @@ RUN set -ex; \ zip \ ; \ \ +# The master version on the imagick repository is compatible with PHP 8.3. However, the PECL version is not updated yet. +# As soon as it will get updated, we can switch back to the PECL version, instead of having this workaround. + curl -fsSL -o imagick.tar.gz "https://github.com/Imagick/imagick/archive/$IMAGICK_COMMIT_HASH.tar.gz"; \ + tar -xzf imagick.tar.gz -C /tmp; \ + rm imagick.tar.gz; \ + cd "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + sed -i "s/@PACKAGE_VERSION@/git-$(echo ${IMAGICK_COMMIT_HASH} | cut -c 1-7)/" php_imagick.h; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + cd; \ + rm -r "/tmp/imagick-$IMAGICK_COMMIT_HASH"; \ + \ # pecl will claim success even if one install fails, so we need to perform each install separately pecl install APCu-%%APCU_VERSION%%; \ pecl install igbinary-%%IGBINARY_VERSION%%; \ - pecl install imagick-%%IMAGICK_VERSION%%; \ pecl install memcached-%%MEMCACHED_VERSION%% \ --configureoptions 'enable-memcached-igbinary="yes"'; \ pecl install redis-%%REDIS_VERSION%% \ diff --git a/README.md b/README.md index ac5b0e28..7de62124 100644 --- a/README.md +++ b/README.md @@ -141,12 +141,23 @@ If mounting additional volumes under `/var/www/html`, you should consider: **Data inside the main folder (`/var/www/html`) will be overridden/removed during installation and upgrades, unless listed in [upgrade.exclude](https://github.com/nextcloud/docker/blob/master/upgrade.exclude).** The additional volumes officially supported are already in that list, but custom volumes will need to be added by you. We suggest mounting custom storage volumes outside of `/var/www/html` and if possible read-only so that making this adjustment is unnecessary. If you must do so, however, you may build a custom image with a modified `/upgrade.exclude` file that incorporates your custom volume(s). +## Running as an arbitrary user / file permissions / changing the default container user + +The default user within a container is root (uid = 0). By default, processes inside the container will expect to have root privileges. Network services will drop privileges and use `www-data` to serve requests. + +Depending on your volumes configuration, this can lead to permission issues. You can address this by running the container with a different default user. When changing the default user, the image will no longer assume it has root privileges and will run all processes under the specified uid. To accomplish this, use the `--user` / `user` option in your container environment. + +See: + +- https://docs.docker.com/engine/containers/run/#user +- https://github.com/docker-library/docs/tree/master/php#running-as-an-arbitrary-user +- https://docs.podman.io/en/stable/markdown/podman-run.1.html#user-u-user-group ## Accessing the Nextcloud command-line interface (`occ`) To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): ```console -$ docker exec --user www-data CONTAINER_ID php occ +$ docker exec -it --user www-data CONTAINER_ID php occ ``` or for docker compose: ```console diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index 2ea11765..978d07fc 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -Eeuo pipefail -stable_channel='30.0.6' +stable_channel='30.0.8' self="$(basename "$BASH_SOURCE")" cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" diff --git a/latest.txt b/latest.txt index 221a8da0..732676bd 100644 --- a/latest.txt +++ b/latest.txt @@ -1 +1 @@ -31.0.0 +31.0.2 diff --git a/update.sh b/update.sh index f55da259..0f224b06 100755 --- a/update.sh +++ b/update.sh @@ -11,6 +11,7 @@ declare -A debian_version=( declare -A php_version=( [default]='8.2' + [31]='8.3' ) declare -A cmd=( diff --git a/versions.json b/versions.json index 2616bc41..cf55b440 100644 --- a/versions.json +++ b/versions.json @@ -1,35 +1,35 @@ { "31": { "branch": "31", - "version": "31.0.0", - "url": "https://download.nextcloud.com/server/releases/nextcloud-31.0.0.tar.bz2", - "ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-31.0.0.tar.bz2.asc", + "version": "31.0.2", + "url": "https://download.nextcloud.com/server/releases/nextcloud-31.0.2.tar.bz2", + "ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-31.0.2.tar.bz2.asc", "variants": { "apache": { "variant": "apache", "base": "debian", "baseVersion": "bookworm", - "phpVersion": "8.2" + "phpVersion": "8.3" }, "fpm": { "variant": "fpm", "base": "debian", "baseVersion": "bookworm", - "phpVersion": "8.2" + "phpVersion": "8.3" }, "fpm-alpine": { "variant": "fpm-alpine", "base": "alpine", "baseVersion": "3.21", - "phpVersion": "8.2" + "phpVersion": "8.3" } } }, "30": { "branch": "30", - "version": "30.0.6", - "url": "https://download.nextcloud.com/server/releases/nextcloud-30.0.6.tar.bz2", - "ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-30.0.6.tar.bz2.asc", + "version": "30.0.8", + "url": "https://download.nextcloud.com/server/releases/nextcloud-30.0.8.tar.bz2", + "ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-30.0.8.tar.bz2.asc", "variants": { "apache": { "variant": "apache", @@ -53,9 +53,9 @@ }, "29": { "branch": "29", - "version": "29.0.12", - "url": "https://download.nextcloud.com/server/releases/nextcloud-29.0.12.tar.bz2", - "ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-29.0.12.tar.bz2.asc", + "version": "29.0.14", + "url": "https://download.nextcloud.com/server/releases/nextcloud-29.0.14.tar.bz2", + "ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-29.0.14.tar.bz2.asc", "variants": { "apache": { "variant": "apache",